博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
findContours 对于亮背景和暗背景找出来的轮廓不一样
阅读量:2090 次
发布时间:2019-04-29

本文共 1903 字,大约阅读时间需要 6 分钟。

对亮背景的图片,会把整个图片作为最大轮廓找出来。请看下面的代码和示意图,Canny出来的图片经过img=255-img处理,这样背景是亮的,矩形轮廓是黑色的嵌在亮背景里。结果找出来的最大轮廓是整幅图(围在整个图周围的白色矩形是最大的轮廓),示意图里左边是输入findContours 处理的原始图,右边是画出来的轮廓图。代码也列在下面。

 

亮背景找轮廓
亮背景找轮廓
#include "opencv2/core.hpp"  #include "opencv2/highgui.hpp"  #include "opencv2/imgproc.hpp"  #include "iostream"#include 
using namespace std;using namespace cv;int main(){ Mat imgS = imread("../images/a2.png", 0); Mat img; GaussianBlur(imgS, img, Size(3, 3), 0); Canny(img, img, 80, 160); img = 255 - img; namedWindow("Image to findContours", WINDOW_NORMAL); imshow("Image to findContours", img ); vector
> contours; findContours(img, contours, RETR_LIST, CHAIN_APPROX_SIMPLE, Point()); Mat imageContours = Mat::zeros(img.size(), CV_8UC1); drawContours(imageContours, contours,-1, Scalar(255), 16, 8 ); namedWindow("Contours Image", WINDOW_NORMAL); imshow("Contours Image", imageContours); imwrite("../images/contours.png", imageContours); waitKey(0); return 0;}

Canny出来的图片不经过img=255-img反色处理,背景就是暗的。在暗背景上findContours则不会将整个图片作为最大的轮廓。下面的将img=255-img 注释掉之后的处理结果,图片和代码都列出来,上图中围在整个图四周的轮廓没有出现。

 

暗背景找轮廓
暗背景找轮廓

 

 

#include "opencv2/core.hpp"  #include "opencv2/highgui.hpp"  #include "opencv2/imgproc.hpp"  #include "iostream"#include 
using namespace std;using namespace cv;int main(){ Mat imgS = imread("../images/a2.png", 0); Mat img; GaussianBlur(imgS, img, Size(3, 3), 0); Canny(img, img, 80, 160); //img = 255 - img; namedWindow("Image to findContours", WINDOW_NORMAL); imshow("Image to findContours", img ); vector
> contours; findContours(img, contours, RETR_LIST, CHAIN_APPROX_SIMPLE, Point()); Mat imageContours = Mat::zeros(img.size(), CV_8UC1); drawContours(imageContours, contours,-1, Scalar(255), 16, 8 ); namedWindow("Contours Image", WINDOW_NORMAL); imshow("Contours Image", imageContours); imwrite("../images/contours.png", imageContours); waitKey(0); return 0;}

 

转载地址:http://oemqf.baihongyu.com/

你可能感兴趣的文章
本地如何连接hbase数据库
查看>>
Maven出错-Missing artifact org.apache.openejb:openejb-core:jar:4.1.0-SNAPSHOT:test
查看>>
dubbo配置文件xml校验报错
查看>>
eclipse生成export生成jar详解
查看>>
oracle 模糊查询忽略大小写
查看>>
Java项目导出可运行的jar文件
查看>>
Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
查看>>
JAVA读取PROPERTIES配置文件
查看>>
Linux中执行shell脚本的4种方法总结
查看>>
BufferedInputStream(缓冲输入流)详解
查看>>
修改linux文件权限命令:chmod
查看>>
Linux vi/vim编辑器常用命令与用法总结
查看>>
如何使用Git Bash Here,将本地项目传到github上
查看>>
eclipse git控件操作 回退到历史提交 重置 删除(撤销)历史的某次提交
查看>>
Oracle | 给表和字段添加注释
查看>>
java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】
查看>>
Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
查看>>
java中System.exit()方法
查看>>
在hbase shell中过滤器的简单使用
查看>>
java静态方法和实例方法
查看>>