2017年4月16日 一周AnswerOpenCV佳作赏析
2017年4月16日 一周AnswerOpenCV佳作赏析

题目:图片去毛刺
优质解答:
}
)
radius;
Mat mInput,mOutput;
Mat mChannel[];
split(mInput_Bgr,mChannel);
; i ; i,mOutput_Bgr);
;
}
)
radius;
Mat mGSmooth,mDiff,mAbsDiff;
mOutput ,),radius);
,THRESH_BINARY_INV);
mDiff.setTo(Scalar(),mAbsDiff);
)
;
; id ; i );
RNG rng();
;
}
mSmoothEdge);
threshold(mSource,mThres,,,THRESH_BINARY_INV);
imshow(;
.;
findContours( mThres.clone(), contours, hierarchy, RETR_TREE, CV_CHAIN_APPROX_SIMPLE );
; i])), , , vector, Point() );
}
])), , , vector, Point() );
}
}
);
SmoothEdgeSingleChannel(mThres,mSmoothEdge,.,.,);
imshow("2) Smooth Edges",mSmoothEdge);
waitKey();
}

解析:
这个效果是不错的,但是废话太多了;精华部分值得体会。注意在做“边界获得”运算后,适当放大后加回了原始图像。
}
)
radius;
Mat mGSmooth,mDiff,mAbsDiff;
mOutput ,),radius);
,THRESH_BINARY_INV);
mDiff.setTo(Scalar(),mAbsDiff);
);
Mat dst;
imshow(.,.,);
imshow("dst",dst);
waitKey();
}
Hi,
In my project, I apply findcontours function to detect a rectangular object within a region of interest in the image. I am doing it in real time. Subsequently, I enclose the detected contour by a boundedrect which gives me its four vertices. However, the position of these vertices is not stable, it is changing very fast. Looks like the contour area is growing and shrinking, and have variations which causes the vertices' position to change. I have tried following solutions, but to no avail.
- Low pass filtering on the output of pixel positions.
- Median and Gaussian blur within the ROI.
- FastNlmeansDenoising: which is too slow for my application.
,), Scalar());
, , );
dilate(img, img, Mat(), Point(,));
//cout << "Inside corrected corners p3.5" << endl;
findContours(img, contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
// cout<<contours.size()<<endl;
// Mat tempimg(img.rows, img.cols, CV_8U, cv::Scalar(0));
// drawContours( tempimg, contours, -1, Scalar(255), 3, CV_AA );
// namedWindow("contours", CV_WINDOW_NORMAL);
// imshow("contours", tempimg);
// cout << "Inside corrected corners p4" << endl;
这个问题在AnswerOpenCV上也是讨论的很激烈,但是大多数还是从去噪音这个思路来说的 。
我认为在实时项目中(比如android),如果还是用静态图片的同样的处理方法来处理图片和寻找轮廓,肯定是会出现“颠簸”的情况。因此在考虑单幅图片的时候,还要同时考虑前面的/后面的图片;如果转换,也需要平滑处理。这些应该都是图像处理以外的东西了。
2017年4月16日 一周AnswerOpenCV佳作赏析的更多相关文章
- 2017年2月16日 分析下为什么spring 整合mybatis后为啥用不上session缓存
因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...
- 2017年2月16日-----------乱码新手自学.net 之MVC模型
第二篇博文,最近学习的内容还是回到了正题:ASP.NET MVC5之上.虽然EF学了个一知半解,但是用这点知识,看MVC5的MODEL部分应该还是够了.尽管周末还要恶补一下EF才行. (一)MVC简述 ...
- 2017年12月16日 ASP.NET基本用法
ASP.NET初级添加 利用css代码跟ASP.NET还有Javascript原生,LinQ来写增跟展示数据 首先介绍一个非常好用的控件,灵活并且循环展示数据库里面的数据 <asp:Repeat ...
- outlook 通讯录分类--2017年1月16日--对联系人分类管理
outlook功能多,复杂,导致打开界面就晕,通讯录分类 问:在Outlook 中,随着联系人数量的增多,亲朋好友.同事.客户的信息混杂在一起,每次发邮件都要用很长时间才能从联系人列表中找到需要的人. ...
- [转载]Ubuntu17.04(Zesty Zapus)路线图发布:2017年4月13日发布
Canonical今天公布了Ubuntu 17.04(Zesty Zapus)操作系统的发布路线图,该版本于今年10月24日上线启动,toolchain已经上传且首个daily ISO镜像已经生成.面 ...
- 11月16日《奥威Power-BI基于SQL的存储过程及自定义SQL脚本制作报表》腾讯课堂开课啦
上周的课程<奥威Power-BI vs微软Power BI>带同学们全面认识了两个Power-BI的使用情况,同学们已经迫不及待想知道这周的学习内容了吧!这周的课程关键词—— ...
- 12月16日广州.NET俱乐部下午4点爬白云山活动
正如我们在<广州.NET微软技术俱乐部与其他技术群的区别>和<广州.NET微软技术俱乐部每周三五晚周日下午爬白云山活动>里面提到的, 我们会在每周三五晚和周日下午爬白云山. ...
- 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发
ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ...
- 成都Uber优步司机奖励政策(4月16日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
随机推荐
- XStream中几个注解的含义和用法
转自:http://blog.csdn.net/robert_mm/article/details/8459879 XStream是个很强大的工具,能将java对象和xml之间相互转化.xstream ...
- 将工程导入到SVN仓库
1.在桌面右键点开Tortoise客户端 2.选择仓库 3.在仓库的trunk目录下为新工程创建文件夹
- Python全栈day14(集合)
一,集合 1,集合由不同元素组成 2,无序 3,集合中元素必须是不可变类型 二,定义集合 1,s = {1,2,3,4,5} 2,s = set(hello)以迭代的方式生成集合 s = set(&q ...
- java nio探险
区别于io: nio是基于通道和缓冲区的,io是基于字节流和字符流的,(千万别被这些破名词唬住).以读取文件为例,文件就是自来水厂,通道就是自来水管道,缓冲区就是你家的缸(或者盛水的xx容器,例如你的 ...
- TFS中工作项的定制-修改面板
上一篇文章我们讲到了<TFS 中工作项的订制-修改工作流>,工作流只要我们设计出来,就可以进行定制修改了.这次通过简单的案例,了解一下,工作项的面板如何定制. 1.软件准备 ...
- IBM DEVOPS IN CLOUD--chaos monkey
- [报错] Xcode Error-Could not insert new outlet connection: Could not find any information for the class named "xxx"
当从StoryBoard或xib中需要将控件绑定类文件时(OC中是.m文件,Swift中是.swift文件) 当按住control键将控件往类文件中拖拽后,填写控件的name后,点击connect时 ...
- Python3量化技术常用插件
1. 确定自己的系统为64位版本 2. 下载安装Python3 64位版本 如果要使用zipline,建议使用python3.5.另外发现很多东西要求的也是3.5. 主页地址: https://www ...
- Django 框架之 URL
URL配置就像Django所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表. # 示例: urlpatterns = [ path(route, view, kwa ...
- 使用nginx搭建文件下载服务器
搭建一个文件服务器的方式有很多,本文介绍笔者曾经用过的两种: 使用nginx 使用java服务,通过controller提供 一.使用nginx搭建 在nginx.conf中直接配置server即可, ...