![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv
zhw864680355
这个作者很懒,什么都没留下…
展开
-
OpenCV实践:计算轮廓的面积和周长
1、对如下图片的面积与周长进行测量2、算法思路灰度处理 模糊处理 二值化 形态学处理 最大轮廓检测 计算面积与周长3、代码实践# include<opencv2\opencv.hpp># include <iostream>using namespace std;using namespace cv;int main(int argc...转载 2020-01-02 15:04:14 · 5859 阅读 · 0 评论 -
OpenCV实践:玉米计数
1、要求:利用opencv对如下图片中的玉米颗粒计数2、思路二值分割 形态学处理 距离变换 阈值化二值分割(局部AdaptiveThreshold每个区域都有一个阈值) 连通区域计数(利用findContours查找轮廓并计数)3、代码实践#include <iostream>#include <opencv2/opencv.hpp>#inc...转载 2020-01-02 14:20:01 · 2080 阅读 · 2 评论 -
OpenCV中轮廓特征的提取与筛选
1、轮廓发现(或提取)findContours( InputOutputArray binImg, OutputArrayOfArrays contours, OutputArray hierachy, int mode, int method, Point offset=Point())参数解释:第一个参数 binImg:输入8bit图像,0值像素值不变,非0的像素看...原创 2020-01-02 10:38:50 · 4161 阅读 · 0 评论 -
OpenCV实践:文件(或身份证)轮廓提取、切边与矫正
参考链接:https://blog.csdn.net/weixin_41695564/article/details/80077706实现思路:通过边缘检测+轮廓检测或者直线检测最大外接矩形实现#include <opencv2/opencv.hpp>#include<vector>#include <iostream>#include &l...转载 2020-01-02 10:03:59 · 7270 阅读 · 0 评论 -
OpenCV实践:去除票据中的红色印章
现实生活中,一些票据(比如发票、车票)等都会有一个红色印章,有时会盖在某个关键区域,影响了其他的字符识别。因此,为了提高准确率,我们尽量会移除红色印章,具体实现方法如下:对彩色图分离通道,拿到红色通道图 进行阈值分割#include<iostream>#include<opencv2\opencv.hpp>#include<opencv2\highgui...转载 2019-12-31 15:43:31 · 2597 阅读 · 0 评论 -
OpenCV实践:获取填空题的下划线
问题描述: 对于下面的一张图片,获取其中的直线部分。1、基本两种方式先用canny检测边缘得到边缘图片,再用霍夫直线检测边缘图片中的直线;(效果差) 先将图像通过形态学操作腐蚀掉字母,然后在通过霍夫检测将直线展示出来。(效果还可以)2、基于上述方法二的算法步骤阈值化(二值化); 构建结构元素,消除字母; 膨胀处理,让直线更加明显; 霍夫直线检测; 记录直线位置。说明:...转载 2019-12-31 14:23:18 · 407 阅读 · 0 评论 -
OpenCV中图像拼接和图像融合技术
1、图像拼接基本步骤对每幅图进行特征点提取 对特征点进行匹配 进行图像配准 把图像拷贝到另一幅图像的特定位置 对重叠边界进行特殊处理2、利用SUFR、SIFT、ORB算子提取特征点进行拼接参考链接:https://www.cnblogs.com/skyfsm/p/7411961.html3、利用Stitch模块进行拼接#include<iostream>#...原创 2019-12-31 10:21:57 · 903 阅读 · 0 评论 -
OpenCV中特征检测与特征匹配:SURF、SIFT、ORB、FAST
原文链接:https://www.cnblogs.com/skyfsm/p/7401523.html(链接中附内有详细实践代码)1、简介一幅图像中总存在着其独特的像素点,这些点我们可以认为就是这幅图像的特征,成为特征点。计算机视觉领域中的很重要的图像特征匹配就是以特征点为基础而进行的,所以,如何定义和找出一幅图像中的特征点就非常重要。这篇文章我总结了视觉领域最常用的几种特征点以及特征匹配的...转载 2019-12-30 17:52:28 · 3016 阅读 · 0 评论 -
OpenCV中角点检测:Harris、Shi-Tomasi、亚像素级角点检测
1、角点的定义角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。比如,三角形有三个角,矩形有四个角,这些就是角点,也是他们叫做矩形、三角形的特征。角点是个很特殊的存在。如果某一点在任意方向的一个微小的变动都会引起灰度很大的变化,那么我们就可以把该点看做是角点。角点检测(Corner Detection)是计算机视觉系统中获取图像特征的一种方法,广...原创 2019-12-30 17:24:42 · 2289 阅读 · 0 评论 -
OpenCV中霍夫变换:直线检测和圆检测
1、简介霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体。Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局...原创 2019-12-26 11:21:08 · 2304 阅读 · 0 评论 -
OpenCV中边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波
1、基于OpenCV的边缘检测步骤滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但是导数对于噪声很敏感,因此需要采用滤波器来改善与噪声有关的边缘检测器的性能。简言之,消除噪声。 增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将灰度点邻域强度值有显著变化的点凸显出来。简言之,使边界轮廓更加明显。 检测:邻域中有很多的点的梯度值较大,但是在特定的应用中,这些点并不是要...原创 2019-12-26 10:47:25 · 747 阅读 · 0 评论 -
OpenCV中形态学操作:膨胀、腐蚀、开闭运算
1、基本概念图像形态学即数学形态学(Mathematical morphology)是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论;常见图像形态学运算:腐蚀,膨胀,开运算,闭运算,骨架抽取,极线腐蚀,击中击不中变换,顶帽变换,颗粒分析,流域变换,形态学梯度等。腐蚀和膨胀是最基本的形态学运算。腐蚀和膨胀是针对白色部分(高亮部分)而言的。膨胀(dilate...原创 2019-12-25 17:36:14 · 1478 阅读 · 0 评论 -
VC与VS的版本对应关系
在VS中导入Opencv包的时候,经常会看到vc14、vc15等,如果选择的版本不正确,会出现包加载错误的情况。在此,列出VS与VC的对应关系,具体如下:Visual Studio 6 : vc6Visual Studio 2003 : vc7Visual Studio 2005 : vc8Visual Studio 2008 : vc9Visual Studio 2010 : v...原创 2019-12-24 15:29:10 · 2918 阅读 · 0 评论 -
python中PIL.Image和OpenCV图像格式相互转换
原文链接:https://blog.csdn.net/dcrmg/article/details/78147219PIL.Image转换成OpenCV格式:import cv2from PIL import Imageimport numpy image = Image.open("plane.jpg")image.show()img = cv2.cvtColor(numpy...转载 2019-03-26 14:24:16 · 1648 阅读 · 0 评论 -
OpenCV中文字的插入和字体的选择(包括大小)
opencv中提供了函数 cv::putText() 和 函数 cv::getTextSize() 来实现对文字的绘制。函数 cv::putText():在图像中绘制制定文字函数 cv::getTextSize():获取一个文字的宽度和高度等尺寸1、cv::putText()函数CV_EXPORTS_W void putText( Mat& img, const stri...原创 2019-02-28 22:52:58 · 22692 阅读 · 4 评论 -
OpenCV中图像通道的分离(split)和混合(merge)
一、split()通道分离函数split()函数的C++版本有两个原型,他们分别是:C++: void split(const Mat& src, Mat*mvbegin); //&为引用操作符C++: void split(InputArray m, OutputArrayOfArrays mv);使用cv::split()将多通道矩阵中的通...原创 2019-02-28 21:46:52 · 7677 阅读 · 0 评论 -
OpenCV笔记大集锦
说明:本文转载自该博客(langb2014),具体源出处暂不得知,非常感谢作者收集和整理关于opencv方面的知识,也特别感谢各模块博主分享关于opencv方面的知识。整理了我所了解的有关OpenCV的学习笔记、原理分析、使用例程等相关的博文。排序不分先后,随机整理的。如果有好的资源,也欢迎介绍和分享。1:OpenCV学习笔记作者:CSDN数量:55篇博文网址:http://blog....转载 2018-02-03 20:18:13 · 188 阅读 · 0 评论 -
OpenCV中Mat与数组(一维或者二维)的相互转换
1、Mat转一维数组Mat mat;//方法1,vectorstd::vector<uchar> array(mat.rows*mat.cols);if (mat.isContinuous()) array = mat.data;或者std::vector<uchar> array;if (mat.isContinuous()) { arra...原创 2019-02-27 23:40:27 · 34593 阅读 · 4 评论