OpenCV点滴
文章平均质量分 74
分享在项目开发中使用OpenCV的一些算法和使用经验。
空空的司马
微信搜『程序员加油站』,回复『pdfs』获取优质电子书
展开
-
谈谈OpenCV中的四边形
首先抛出一个问题,给定一系列二维平面上的的点,这些点是可以组成一个封闭的二维图形。因为这些点是矩形区域拍摄图像后识别得到的图形的边界点,所以我们要抽象出来这个矩形,也就是我们要反映出这个矩形。问题是在拍照的时候摄像头可能不是正对着图形的,那么矩形就必然在图像上反映为一个四边形, 如下图所示。那怎么得到这个四边形的四个顶点呢?使用经典图像处理的算法的话可以使用OpenCV提供了几个和矩形相关的函数接口。另一类就是使用机器学习类算法检测定位四个角点。首先来看看使用经典图像处理的算法来进行解决。1.最小包络原创 2021-01-16 14:19:06 · 6549 阅读 · 0 评论 -
OpenCV - 最大熵分割
转载请注明出处,谢谢.图像分割系列的博客连续写了两篇了,这次继续写写利用最大熵模型来进行图像的阈值分割。如果对其他相关博客感兴趣可进入下面的链接查看: 1. OpenCV - 区域生长算法 2. OpenCV - 均值迭代分割 3. OpenCV - 最大间方差(OTUS)分割1. 最大熵是什么?这里所说的熵是指信息熵,信息熵是来自于信息论的一个词,它是对系统所含信息的一种度量。通俗的讲,系原创 2016-12-29 18:58:31 · 8962 阅读 · 3 评论 -
OpenCV - 最大间方差分割
OpenCV中其实有对OTUS算法的实现,threhold()函数最后一个参数可以指定使用OTUS算法。1、最大方差(OTUS)算法的描述和均值迭代算法相似,OTUS算法也是利用图像的直方图进行的。OTUS算法的思想是选取一个阈值T,T∈[0,m−1]T, T \in [0,m-1],mm为图像的灰度级将直方图两部分,TT值使得分成的两组间方差最大。2、算法的步骤待处理图像灰度值范围为[0,m−1原创 2016-12-06 20:10:19 · 3518 阅读 · 0 评论 -
OpenCV - 均值迭代分割
【题外话】:之前在博客中写过一篇“区域生长”的博客,区域生长在平时经常用到,也比较容易理解和代码实现,所以在很多情况下大家会选择这种方法。但是区域生长有一个最致命的点就是需要选取一个生长的种子点。 为了交流学习,同时也为了后面查阅方便,准备陆续将基于直方图的几种分割算法加以总结。1、均值迭代算法的描述对一幅图像MM,均值迭代算法就是要迭代计算得到一个灰度值TT,使得这个灰度值TT将图像分成的原创 2016-12-03 23:12:24 · 4873 阅读 · 1 评论 -
OpenCV - findContours函数使用
1、findContoursfindContours在OpenCV的参考手册(opencv2refman.pdf)中的原型如下:findContours有两个函数的原型,第一个输出带层次的contours,换句话说每一个contours都在一个单独的图像层上,这就给我们需要单独处理每一个contours带来了方便。不带层次的coutours也有自己的用处,也就是我们在不需要输出原创 2015-12-01 17:21:07 · 9003 阅读 · 0 评论 -
OpenCV - 区域生长算法
1、理论基础 区域生长算法的基本思想是将有相似性质的像素点合并到一起。对每一个区域要先指定一个种子点作为生长的起点,然后将种子点周围领域的像素点和种子点进行对比,将具有相似性质的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。这样一个区域的生长就完成了。这个过程中有几个关键的问题:a> 给定种子点(种子点如何选取?) 种子点的选取很多时候都采用人工交互原创 2015-11-27 16:13:21 · 40273 阅读 · 56 评论