![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【OpenCV】
小武~~
静心尽力,总结沉淀!
关注 OpenImage,我们坚持开源,可以一起分享、学习图像处理相关的小知识,获取或分享学习资源,还可以和博主以及其他小伙伴们一起交流学习哦。
展开
-
mwArray和cv::Mat互相转化函数
最近用C++/OpenCV调用MATLAB函数,有必要专门把这两个函数拿出来记录一下。需要注意的是,Mat2mwArry函数的输入Mat类型是 CV_64FC1,灰度图。如果要传递多通道图像的话,需要先cv::split()成多个灰度图像分别传给matlab。mwArray2Mat的返回Mat的类型是CV_64FC1,可以通过cv::Mat::convert()转化成所需要的类型...转载 2019-11-19 22:13:24 · 1456 阅读 · 0 评论 -
OpenCV基础——IplImage中的widthStep
IplImage有两个属性容易导致错误:width和widthStep前者是表示图像的每行像素数,后者指表示存储一行像素需要的字节数。在OpenCV里边,widthStep必须是4的倍数,从而实现字节对齐,有利于提高运算速度。如果8U单通道图像宽度为3,那么widthStep是4,加一个字节补齐。这个图像的一行需要4个字节,只使用前3个,最后一个空着。也就是一个宽3高3的图像的...转载 2019-10-16 20:31:32 · 845 阅读 · 0 评论 -
OpenCV基础——cv::Mat::step
说在前面关于opencv的Mat类step的问题是我2019秋招找工作笔试时遇到的,平时没有注意这些细节,所以也没有答出来,简历上却写着熟悉opencv,我着实感到非常羞愧,所以从这篇文章开始记录有关opencv的基础细节问题。这些细节不一定在工作中能时常用到,但在某一个关键时间点却可能突然出现,打得自己措手不及,所以这些细节是一定要注意的。我不准备刻意地去搜集这些细节,一是这些基础细节实在太...转载 2019-10-16 20:17:12 · 2708 阅读 · 0 评论 -
OpenC学习笔记之十四——仿射变换
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、仿射变换概述官网描述:https://docs.opencv.org/2.4.9/doc/tutorials/...原创 2018-04-26 22:10:10 · 781 阅读 · 0 评论 -
Canny算子边缘检测详细原理(OpenCV+MATLAB实现)
最近老师布置了一个边缘检测的作业,我借此机会详细学习了一下canny算子,在此进行总结,并分别给出OpenCV代码和MATLAB代码,自己水平有限,若有错误或者更好的编程方法,请广大网友留言,一定虚心学习。好了废话少说,直接开始吧。基本原理须满足条件:抑制噪声;精确定位边缘。 从数学上表达了三个准则[信噪比准则(低错误率)、定位精度准则、单边缘响应准则],并寻找表达式的最...原创 2018-05-19 22:11:59 · 11214 阅读 · 8 评论 -
OPenCV的Mat类数据类型总结
在openCV 中经常会遇到需要访问mat类对象中的数据的情况,所以必须真确填写相应的数据类型。1、OpenCV中的数据类型和常用的数据类型对应关系如下:Mat_<uchar>---------CV_8UMat<char>-----------CV_8SNat_<short>---------CV_16SMat_<ushort>--------...原创 2018-05-20 11:48:26 · 2128 阅读 · 0 评论 -
OpenCV中矩阵类详解:Mat
综述Mat类可以被看做是opencv中C++版本的矩阵类,替代原来C版本的矩阵结构体CvMat和图像结构体IplImage;Mat最大的优势跟STL的兼容性很好,有很多类似于STL的操作。但是Mat远远强于后者;Mat是一种高效的数据类型,它对内存进行动态的管理,不需要之前用户手动的管理内存。Mat类定义Mat类定义于core.hpp中,主要包含有两部分数据:一部分是矩阵头(matrix head...转载 2018-05-20 12:25:12 · 772 阅读 · 0 评论 -
OpenCV中对数组(矩阵)的常用操作
add 矩阵加法,A+B的更高级形式,支持mask scaleAdd 矩阵加法,一个带有缩放因子dst(I) = scale * src1(I) + src2(I) addWeighted 矩阵加法,两个带有缩放因子dst(I) = saturate(src1(I) * alpha + src2...原创 2018-05-20 16:40:53 · 1166 阅读 · 0 评论 -
OpenCV实现频率域滤波——以高斯低通滤波去噪为例
最近通过研究了一下频率域滤波,并试着用OpenCV实现,但是OpenCV并没有像MATLAB中 fftshift 这样的中心化操作,所以我写了一个完成频率域滤波的函数,以后用频率域滤波的时候在主函数中调用即可。当然,水平有限,编写的代码并不优美,有问题请大家留言批评指正。 在这里我不介绍傅里叶变换、频率域滤波和高斯低通滤波器的原理,想必大家已经有了大概了解,本文关注OpenCV的代码实现。 ...原创 2018-06-06 22:22:34 · 14450 阅读 · 7 评论 -
opencv学习笔记之十五——最小外接矩形(RotatedRect返回角度angle问题)
最近在看一个车牌识别开源项目时,对其中RotatedRect的角度属性理解得不清楚,也查找了大量博客,得出了基本结论,最后通过实验进一步进行了验证。RotatedRect该类表示平面上的旋转矩形,有三个属性:矩形中心点(质心) 边长(长和宽) 旋转角度旋转角度angle的范围为[-90,0),当矩形水平或竖直时均返回-90,请看下图:来源:https://blog.csdn....原创 2018-07-02 16:07:46 · 17661 阅读 · 14 评论 -
opencv矩阵元素数据类型总结
转自:http://www.jianshu.com/p/204f292937bb 在以下两个场景中使用 OpenCV 时,我们必须事先知道矩阵元素的数据类型:使用 at 方法访问数据元素的时候要指明数据类型 做数值运算的时候,比如究竟是整数除法还是浮点数除法。但面对一大堆代码,我们有时并不清楚当前的矩阵元素究竟是什么类型,这篇文章就是以 cv::Mat 类为例来解决这个问题。c...转载 2019-02-26 13:58:50 · 325 阅读 · 0 评论 -
opencv-图像遍历的几种方式
转载:https://www.cnblogs.com/ronny/p/opencv_road_2.html我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题。一、遍历图像的4种方式:at<typename>(i,j)Mat类提供了一个at的方法...转载 2019-03-06 10:23:21 · 438 阅读 · 2 评论 -
OpenCV学习笔记之十四——opencv重映射&surf特征点检测
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021重映射 一、概念简析映射,就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需...原创 2018-04-26 17:39:01 · 449 阅读 · 0 评论 -
OpenCV学习笔记之十三——角点检测之Harris角点检测
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、引言在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints)...原创 2018-04-25 22:31:54 · 5200 阅读 · 2 评论 -
OpenCV学习笔记之九——边缘检测(Canny算子,Sobel算子,Laplace算子,Scharr滤波)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、Canny算子详情介绍:https://zh.wikipedia.org/wiki/Canny%E7%AE%9...原创 2018-04-21 17:42:54 · 5553 阅读 · 0 评论 -
Opencv学习随笔(c++)-摄像头调用
//添加头文件#include<opencv2/core/core.hpp>#include<opencv2/highgui.hpp>#include<opencv2/imgproc.hpp>#include<iostream>using namespace std;using namespace cv;int main (){...原创 2018-04-15 18:04:52 · 7162 阅读 · 1 评论 -
Opencv学习笔记(c++)-添加跟踪条(调节对比度和亮度)
本篇 文章分享学习使用opencv3.0创建跟踪条首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/details/21479533函数: createTrackbar();官网函数解析:http...原创 2018-04-16 21:30:44 · 471 阅读 · 0 评论 -
Opencv学习笔记(c++)——基本常用函数及一些图像处理基本方法
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、常用函数1、点的表示:Point 类;2、颜色的表示:Scalar类:Scalar( a, b, c )我们...原创 2018-04-17 21:24:56 · 767 阅读 · 0 评论 -
OpenCV学习笔记之十——图像金字塔(高斯金字塔,拉普拉斯金字塔、图片尺寸缩放)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、介绍图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构...原创 2018-04-22 12:03:31 · 4686 阅读 · 0 评论 -
Opencv学习笔记之五——线性邻域滤波(方框滤波、均值滤波、高斯滤波)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021【1】方框滤波方框滤波(box Filter)被封装在一个名为boxblur的函数中,即boxblur函数的作用是...原创 2018-04-18 22:41:36 · 324 阅读 · 0 评论 -
OpenCV学习笔记之十一——霍夫变换(霍夫线变换,霍夫圆变换)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、概述霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累...原创 2018-04-23 22:42:54 · 462 阅读 · 0 评论 -
OPenCV学习笔记之六——非线性滤波(中值滤波,双边滤波)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、中值滤波——medianBlur函数基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,该方法在去除脉冲...原创 2018-04-19 19:15:07 · 1447 阅读 · 0 评论 -
OpenCV学习笔记之七——图像形态学处理(一)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021一、形态学概述数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像...原创 2018-04-19 21:06:32 · 309 阅读 · 0 评论 -
OPencv学习之十一——一点小总结(编程小错误,数据类型,常用类)
小错误:1、不要错用标识符当变量(如:threshold)2、显示图像的窗口名,跟踪条名尽量用英文,低版本的不兼容中文(2.4以上的兼容)。数据类型请参考:https://blog.csdn.net/u010368556/article/details/79179669 vector: <1>解释:容器,可以存放各种类型的对象,是一个动态数组,存放各种类型的数据; 注意...转载 2018-04-24 21:11:16 · 132 阅读 · 0 评论 -
Opencv学习笔记之八——形态学处理(二)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/19230211、开运算开运算(Opening Operation),其实就是先腐蚀后膨胀的过程。其数学表达式如下:开运算可以用...原创 2018-04-20 20:23:08 · 323 阅读 · 0 评论 -
Opencv学习笔记之十二——漫水填充法(floodFill)
首先感谢@浅墨_毛星云,本篇博文是小武通过学习@浅墨_毛星云的博客以及书籍《opencv3.0编程入门》整理的笔记及疑问心得,小武水平有限,欢迎交流。@浅墨_毛星云博文:https://blog.csdn.net/poem_qianmo/article/category/1923021定义:漫水填充法是一种用特定的颜色填充联通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法。...原创 2018-04-25 15:38:36 · 1266 阅读 · 0 评论 -
Opencv学习随笔(c++)-Canny算子边缘检测
//添加头文件#include<opencv2/core/core.hpp>#include<opencv2/highgui.hpp>#include<opencv2/imgproc.hpp>#include<iostream>using namespace std;using namespace cv;int main (){...原创 2018-04-15 17:06:25 · 636 阅读 · 0 评论