我是OpenCV的新手 . 首先,将物体放在白纸上,然后使用机器人相机拍摄照片 . 在下一步,我试图使用OpenCV(找到轮廓和绘制轮廓)提取放在白纸上的对象 . 我想将这个对象用于我的机器人项目 .

示例图片:

这是我试过的代码:

int main(int argc, char* argv[]){

int largest_area=0;

int largest_contour_index=0;

Rect bounding_rect;

// read the file from console

Mat img0 = imread(argv[1], 1);

Mat img1;

cvtColor(img0, img1, CV_RGB2GRAY);

// Canny filter

Canny(img1, img1, 100, 200);

// find the contours

vector< vector > contours;

findContours(img1, contours, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);

printf("%ld\n", contours.size());

for( size_t i = 0; i< contours.size(); i++ ) // iterate through each contour.

{

double area = contourArea(contours[i]); // Find the area of contour

if(area > largest_area)

{

largest_area = area;

largest_contour_index = i; //Store the index of largest contour

bounding_rect = boundingRect(contours[i]); // Find the bounding rectangle for biggest contour

}

}

cout << "contour " << contours.size() << endl;

cout << "largest contour " << largest_contour_index << endl;

Scalar color = Scalar(0,0,255);

drawContours(img0, contours, -1, color);

Mat roi = Mat(img0, bounding_rect);

// show the images

imshow("result", img0);

imshow("roi",roi);

imwrite("result.png",roi);

waitKey();

return 0;

}

这将为照片中的所有对象绘制轮廓 . 但是如何才能在白纸上提取物体?例如在这张图片中:

我只想从图像裁剪卡,但我不知道如何继续 . 谁能帮我吗?

opencv 裁剪 java_OpenCV绘制轮廓和裁剪相关推荐

  1. opencv 查找并绘制轮廓

    一个轮廓一般对应一系列的点, 也就是图像中的一条曲线.其表示方法可能根据不同的情况而有所不同. 在opencv中可以用findContours()函数从二值图像查找轮廓 findContours()函 ...

  2. 使用Python和OpenCV捕获鼠标事件,并裁剪图像

    使用Python和OpenCV捕获鼠标事件,并裁剪图像 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python和OpenCV捕获鼠标事件.还演示了如何快速裁剪和提取图像区域,这在为自己的自 ...

  3. 基于OpenCV实战:绘制图像轮廓(附代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 山区和地形图中海拔高的区域划出的线称为地形轮廓,它们提供了地形的高 ...

  4. 计算机视觉开源库OpenCV之绘制轮廓函数cv2.drawContours()介绍

    计算机视觉开源库OpenCV之绘制轮廓函数cv2.drawContours(),用于轮廓的绘制或填充. cv2.drawContours(image, contours, contourIdx, co ...

  5. 计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~

    计算机视觉开源库OpenCV绘制轮廓,并将轮廓排序~示例效果如下: 原图: 示例代码如下: #!/usr/bin/env python3import cv2def sort_contours(cnts ...

  6. Opencv——查找并绘制凸包、凸包与轮廓的关系

    定义 给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型. 理解物体形状或轮廓的一 种比较有用的方法便是计算一个物体的凸包,然后计算其凸缺陷(convexity defects). 检测 ...

  7. OpenCV学习笔记(十七):查找并绘制轮廓:findContours(),drawContours(),approxPolyDP()

    OpenCV学习笔记(十七):查找并绘制轮廓:findContours() 1.findContours() 函数 该函数使用Suzuki85算法从二值图像中检索轮廓.轮廓线是一种用于形状分析.目标检 ...

  8. opencv 绘制轮廓边框 多边形 圆形 矩形

    如何使用opencv 绘制轮廓边框最小包裹 多边形 圆形 矩形? 函数说明: Rect boundingRect(InputArray points) points:输入信息,可以为包含点的容器(ve ...

  9. html path 图标,Clippy – 轻松绘制 CSS clip-path 裁剪路径工具

    Clippy – 轻松绘制 CSS clip-path 裁剪路径工具 4月 13, 2016 评论 Sponsor Clippy 是一个 CSS clip-atch 属性绘制工具,使用它可以轻松绘制不 ...

最新文章

  1. ssh(Struts+spring+Hibernate)三大框架整合-简述
  2. C# 高性能 TCP 服务的多种实现方式
  3. Enterprise Library之错误处理部分
  4. 初识中文分词(一)MMSEG
  5. Tensroflow随笔-测试集
  6. 【转】Info.plist中常用的key简介
  7. Spark调优——你工作中的首选
  8. Hadoop2.7.6在Windows7单机部署
  9. java10.0.1怎么安装_关于tomcat:您使用哪个Java? 在Server 2016上安装JDK和JRE(10.0.1); 设置JAVA_HOME和路径...
  10. 进程 线程 多进程 多线程 父进程 子进程
  11. 随机抽样一致算法(RANSAC)理论介绍和程序实现
  12. 如何做到注册不到三年Github标星47.1k+(几点经验)
  13. P3970 [TJOI2014]上升子序列
  14. 软件测试如何制作简历?
  15. python全栈马哥_马哥2018python全栈+爬虫+高端自动化,资源教程下载
  16. OSPF路由聚合(学习笔记+实验验证)
  17. Android 流媒体播放 live streaming
  18. 红帽的RHCSA、RHCE、RHCA值得报考吗?
  19. 利用Python实现腾讯校园招聘状态查询
  20. 软件工程经济学期末复习第二章

热门文章

  1. 基于阈值的损失函数_【代码+推导】常见损失函数和评价指标总结
  2. 宝马3系m套件清单图_穿上套件我就不认识你了?华晨宝马1系新老对比
  3. python网络爬虫基础知识_Python网络爬虫基础知识
  4. 编译libmysqlclient.a静态库
  5. PHPStorm IDE 快捷键
  6. Jquery- 错误消息Date未定义,String未定义
  7. Linux下C程序的可扩展性.
  8. MSMQ 安装问题的解决过程
  9. 关于如何提高SQL Server Compact的查询性能
  10. [分享]极富挑战性的大公司面试的智力题