![](https://img-blog.csdnimg.cn/6b6a240154434f8ba7a865f571e685fc.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
openCv
文章平均质量分 68
open cv配置 学习
小地瓜重新去华容道工作
这个作者很懒,什么都没留下…
展开
-
【数字图像处理】数字图像处理中的直方图相关操作
图像直方图处理相关操作:计算直方图、直方图均衡化、直方图归一化等原创 2023-08-14 09:08:11 · 649 阅读 · 0 评论 -
【opencv】颜色映射表操作-applyColorMap()和LUT()函数使用介绍
opencv颜色映射表操作原创 2022-11-13 17:48:20 · 3994 阅读 · 2 评论 -
【图像处理】基于直方图均衡化的图像轻微条纹检测(opencv实现)
基于直方图均衡化的方式提高图片对比度,检测出图像轻微条纹原创 2022-11-01 16:50:35 · 1902 阅读 · 0 评论 -
【图像处理】图像基础滤波处理:盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波
图像滤波操作原创 2022-11-02 20:00:00 · 3571 阅读 · 0 评论 -
【python】python+numpy模块读、写raw图并使用opencv显示图片
python读写raw图原创 2022-10-29 22:33:50 · 2726 阅读 · 0 评论 -
【OpenCv】相机标定介绍及python/c++实现
单目针孔相机标定简单介绍及实现原创 2022-10-28 16:39:41 · 4923 阅读 · 0 评论 -
【python】【opencv】使用中出现的问题
python使用opencv时出现的问题原创 2022-10-28 15:36:03 · 761 阅读 · 0 评论 -
【VSCode】【OpenCv】Windows平台下VSCode + OpenCv + minGw环境搭建-C++
VSCode+mingw配置Opencv编写C/C++程序原创 2022-10-27 11:01:28 · 673 阅读 · 0 评论 -
【OpenCV】生成透明的PNG图像
cv::imwrite()函数生成PNG图片。原创 2022-07-27 14:27:30 · 2781 阅读 · 0 评论 -
【opencv】49-OpenCv深入分析轮廓
opencv轮廓深入分析;1. 多边形逼近2. 获得轮廓的长度、矩形包围框、最小矩形包围框、最小包围圆、椭圆边框、最佳拟合线、轮廓的凸包;原创 2022-07-27 10:17:26 · 839 阅读 · 0 评论 -
47_Opencv中的轮廓查找 cv::findContours()
opencv实现轮廓提取及绘制轮廓原创 2022-07-07 09:51:53 · 4058 阅读 · 2 评论 -
【46】【OpenCv】模板匹配问题
Opencv模板匹配cv::matchTemplate()简单介绍原创 2022-06-16 17:01:14 · 2673 阅读 · 0 评论 -
【45】【OpenCv】直方图操作 反向投影之基础的反向投影 cv::calcBackProject()
直方图操作之反向投影操作 cv::calcBackProject()原创 2022-06-16 15:20:02 · 656 阅读 · 0 评论 -
43_OpenCV直方图基本操作
OpenCv中直方图基本操作;计算直方图;归一化/阈值化/找出显著区间;比较两个直方图原创 2022-06-15 15:24:22 · 909 阅读 · 0 评论 -
17_OpenCV获取最大值、最小值、平均值、标准差等
OpenCV获取最大值、最小值、均值、标准差等原创 2022-03-24 18:04:05 · 10095 阅读 · 0 评论 -
色彩空间
1. GRAY色彩空间 灰度空间GRAY色彩空间通常指8位灰度图,256个灰度级,像素范围[0,255]。数值表示不同程度的灰色,像素值越低,灰色越深。0表示黑色,255表示白色。GRAY色彩空间是单通道,常用二维数组表示一幅灰度图像。二值图像:只有0和255两种像素值的灰度图像。2. RGB色彩空间人眼能够感受三种不同的颜色:红色、绿色、蓝色,即三基色。自然界常见的大部分颜色都可以通过将三基色按照一定比例混合得到。RGB色彩空间中,存在R(Red)、G(Green)、B..原创 2022-05-25 15:47:02 · 2128 阅读 · 0 评论 -
40_OpenCV均匀调整图像大小,增大或缩小图像
1. 均匀调整大小 cv::resize()使用cv::resize()时,提供输入图像和想要转换的大小,该函数会生成我们想要的大小的图像。void cv::resize( cv::InputArray src, // input image cv::OutputArray dst, // result image cv::Size dsize, // new size double fx = 0, // x-rescale double fy = 0, // y-rescal原创 2022-05-18 10:29:21 · 3710 阅读 · 0 评论 -
39_OpenCV关于用任意线性滤波器做卷积的操作
OpenCv允许使用一个真实存在的核进行卷积操作。理论上,只要用一个数组表示一个核,然后放进一个函数,就可以用来卷积了。实际情况中,一些不起眼的地方会在很大程度上影响到性能,可分解的矩阵通常会产生这种影响,如下:一个可分核可以理解成两个一维核,在卷积时,先调用x内核,然后再调用y内核。两个矩阵进行卷积所产生的消耗可以用两个矩阵的面积之积近似。这样,一个n x n的核对面积为A的图像进行卷积所需的时间是An²。但是如果分解成n x 1和1 x n的两个核,那么代价就是An + An = 2An,.原创 2022-05-11 20:44:21 · 454 阅读 · 0 评论 -
38_OpenCV关于图像形态学:腐蚀、膨胀、开闭运算、形态学梯度、顶帽和黑帽及自定义核
OpenCV提供了一种高效且易用的图像形态学变换接口。基本上,所有的形态学操作都基于两种原始操作,接下来的讲述也将以这两点开始、循序渐进发展到更加复杂的操作,每个更加复杂的操作都将通过前面的方法来表示。1. 膨胀和腐蚀膨胀和腐蚀是最基础的形态学变换,可以应用到许多方面,比如消除噪声、元素分割和连接等。膨胀是一种卷积操作,将目标像素的值替换为卷积核覆盖区域的局部最大值。这是一个非线性核的例子。通常膨胀采用的核是一个四边形或圆形的实心核,其锚点在中心。膨胀的作用是使图中填充区域。与膨胀对应的,腐原创 2022-05-10 16:42:23 · 1432 阅读 · 0 评论 -
37_OpenCv关于导数和梯度的计算
.1. 索贝尔导数Sobel一般,用来表示微分的最常用的算子是索贝尔(Sobel)导数算子。Sobel算子可以实现任意阶导数和混合偏导数。函数为cv::Sobel()。函数原型:void cv::Sobel( cv::InputArray src, // input image cv::OutputArray dst, // result image int ddepth, // pixel depth of output int xorder, // order of corr原创 2022-05-07 16:39:48 · 699 阅读 · 0 评论 -
36_OpenCV中的平滑操作
通常,平滑图像的目的是为了减少噪声和伪影。OpenCv提供5种不同的平滑操作。目录1. 简单模糊cv::blur()和方框型滤波器cv::boxFilter()2. 中值滤波器cv::medianBlur()3. 高斯滤波器cv::GaussianBlur()4. 双边滤波器cv::bilateralFilter()1. 简单模糊cv::blur()和方框型滤波器cv::boxFilter()cv::blur()函数实现了简单模糊,目标图像中的每个值都是源图像中相应位置一个.原创 2022-05-06 17:11:24 · 1903 阅读 · 0 评论 -
35_OpenCv中的阈值化操作
阈值化操作原理是给定一个数组和阈值,对于数组中每个值,根据其高于或低于这个阈值做出响应的处理。也可以把阈值化理解成一个用axa的核进行卷积,对每个像素进行一次非线性操作。函数原型:double cv::threshold( cv::InputArray src, // input image cv::OutputArray dst, // result image double thresh, // threshold value double maxValue, // max valu原创 2022-05-06 10:30:30 · 1626 阅读 · 0 评论 -
34_OpenCv处理图像边界
OpenCV处理图像边界时,采用的方法是在源图像周围添加虚拟像素。需要解决的问题就是如何对缺少相邻像素点的边缘像素点(即边界)计算出一个有效的结果。实际处理时,在没有公认方法的情况下,一般通过自定义的方式在某一场景中处理问题。1. 自定义边框处理图像时,只要告诉要调用的函数添加虚拟像素的规则,库函数就会自动创建虚拟像素。需要注意在创建虚拟像素时采用的方法。函数cv::copyMakeBorder()为图像创建边框。通过指定两幅图像,第一幅图像是源图像,第二幅图像是扩充之后的图像,同时指明填充方法,这原创 2022-04-25 10:50:33 · 1242 阅读 · 0 评论 -
YAML文件介绍
YAML是一种可读性高,以数据为中心的数据序列化格式。可以表达对象(键值对)、数组、标量,能够被多种贬称该语言和脚本语言解析。基本语法以 k:v 的形式表示键值对的关系,冒号后面必须有一个空格; # 表示注释; 对大小写敏感; 通过缩进来表示层级关系,缩排中空格的数目不重要,只要相同阶层的元素左侧对齐就可以; 缩进只能使用空格,不能使用tab缩进键; 字符串可以不用双引号;格式1. 对象和键值对键值通过 冒号:,形如 k: v的方式表示,冒号后面要加一个空格,比如:Name原创 2022-04-12 10:56:40 · 1036 阅读 · 0 评论 -
33_OpenCV读取XML或YML文件的 cv::FileNode类
cv::FileNode通常在cv::FileStorage对象读取文件时使用,cv::FileStorage::operator>>操作符的返回值是一个cv::FileNode对象。成功构建cv::FileNode对象之后,便可以利用它来完成许多工作。如果直接表示一个实际的对象(或者一个数字或者字符串),可以直接使用重载操作符cv::FileStorage::operator>>(),将它的值加载到对应类型的变量之中。可以使用以下形式: cv::Mat anArray;原创 2022-04-12 08:52:38 · 2615 阅读 · 1 评论 -
32_OpenCV中的数据存储 cv::FileStorage
OpenCV提供一种序列话与反序列化的机制,用于将不同数据类型的数据以YAML和XML格式写入磁盘或者从磁盘读取。这种方法可以加载或保存任何OpenCV的数值变量(包括基本数据变量,像int和float等)到一个文件中。这种文件读写的基本机制是通过cv::FileStorage对象实现的。cv::FileStorage的构造函数:cv::FileStorage::FileStorage();cv::FileStorage::FileStorage(string filename, int fla原创 2022-04-11 15:40:16 · 7575 阅读 · 0 评论 -
OpenCV中的绘图和文本操作函数
OpenCV的绘图函数可以在任意深度的图像上工作,但大多数情况下,这些绘图函数只对图像的前三个通道有影响。如果是单通道图像,则默认只影响第一个通道。大多数绘图函数都支持操作对象的颜色、宽度、线型(与指向平滑度有关)和亚像素对齐等参数。OpenCV对多通道进行色彩渲染时使用了BGR的顺序。画直线或者其他图形(虚线、圆、矩形等)的函数通常可以接受宽度(thickness)和线型(lineType)的参数。lineType参数的值只能是4,8或者cv::LINE_AA,lineType参数表示直线是4原创 2022-04-06 11:34:26 · 3501 阅读 · 0 评论 -
31_OpenCV中关于文字的操作
本文主要是关于绘制文本以及获取文字字体大小的说明。1. 绘制文本 cv::putText()cv::putText()是OpenCV中的一个主要文字绘制的方法,可以简单地在图像上绘制一些文字。函数声明:void cv::putText( cv::Mat& img, // image to be drawn on const string& text, // write this (often from cv::format) cv::Point origin, //原创 2022-04-06 11:01:48 · 4116 阅读 · 0 评论 -
29_OpenCV绘制未填充的多边形 cv::polyLines
函数cv::polyLines可以绘制任意数量的未填充的多边形,它可以处理包括有自交点的多边形在内的普通多边形。函数声明如下:void polyLines( cv::Mat& img, // image to be drawn on const cv::Point* pts, // C-style array of arrays of points int npts, // number of points in pt[i] int nContours,原创 2022-04-05 22:30:53 · 2846 阅读 · 0 评论 -
28_OpenCV绘制一个填充的多边形cv::fillConvexPoly()、cv::fillPoly()
OpenCV提供函数绘制一个多边形:cv::fillConvexPoly和cv::fillPoly。cv::fillConvecPoly()函数声明:void fillConvexPoly( cv::Mat& image, // image to be drawn on const cv::Point* pts, // C- style array of points int nps, // Number of points in 'pts' const cv::Scalar原创 2022-04-05 10:15:53 · 1495 阅读 · 0 评论 -
27_OpenCV绘制椭圆
cv::ellipse和cv::circle函数非常相似,主要的区别在于axes参数。函数声明:bool ellipse( cv::Mat& img, // image rto be drawn on cv::Point center, // location of ellipse center cv::Size axes, // length of major and minor axes double angle, // tilt angle of major axis d原创 2022-04-02 15:00:05 · 2772 阅读 · 0 评论 -
26_OpenCV判断两个点组成的直线是否在一个矩形范围内
cv::clipLine()函数判断pt1到pt2的直线是否在一个矩形范围内。函数声明如下:bool clipLine( // true if any part of line in imgRect cv::Rect imgRect, // rectangle to clip to cv::Point& pt1, // first endpoint of line overwritten cv::Point& pt2 // second endpoint of line,原创 2022-04-02 11:58:52 · 2541 阅读 · 0 评论 -
25_OpenCV绘制圆、直线、矩形
OpenCV提供画圆的函数:cv::circle()。函数声明:void circle( cv::Mat& img, // image to be drawn on cv::Point center, // location of circle center int radius, // radius of circle const cv::Scalar& color, // color RGB form int thickness = 1, // thicknes原创 2022-04-02 10:53:28 · 2919 阅读 · 0 评论 -
22_OpenCV中求解方程的一系列cv::solve...()函数
1. 求解线性系统的函数 cv::solve()函数原型:int cv::solve( cv::InputArray lhs, // lefthand side of system, n-by-n cv::InputArray rhs, // righthand side of system, n-by-n cv::OutputArray dst, // result array, will be n-by-1 int method = cv::DECOMP_LU // metho原创 2022-04-02 10:03:17 · 7210 阅读 · 0 评论 -
OpenCV基础函数汇总
函数名说明cv::transform实现线型图象的变换,如颜色空间的转换,坐标系统的转换等cv::cvtColor色彩空间转换cv::sort排序操作,设置flags指定排序策略cv::sortIdx排序cv::repeat根绝需要重复赋值矩阵多次cv::transpose赋值对角的部分,实现类似转置的功能cv::completeSymm实现矩阵对称cv::reduce实现简化的操作,实现的功能是对行或列求和、或均值,或最大值,或...原创 2022-04-02 09:40:52 · 1006 阅读 · 0 评论 -
24_OpenCV实现任意线性图像变换 cv::transform()
cv::transform()函数可用于计算任意线性图像变换。函数声明:void cv::transform( cv::InputArray src, cv::OutputArray dst, cv::InputArray mtx);它将多通道输入矩阵src视为向量的集合。可以视为通道空间,然后这些向量乘以“小”矩阵mtx,以实现此通道空间中的转换。此函数计算公式:mtx矩阵的行数必须与src的通道数相同,或者为通道数加一,在第二种情况下,src中的通道空间向量将自动扩展1维,原创 2022-03-31 16:01:23 · 2463 阅读 · 0 评论 -
23_OpenCV实现矩阵的排序功能
本文主要是关于OpenCV中的排序的实现。目录1. cv::sotr()2. cv::sortIdx()1. cv::sotr()cv::sort()函数用于二维矩阵,只支持单通道源矩阵。函数声明如下:void cv::sort( cv::InputArray src, cv::OutputArray dst, int flags);cv::sotr()分别对每行每列进行排序。结果是一个新的矩阵,该结果矩阵与源矩阵具有想用的尺寸和类型。排序可以是升序或降序,可以对行或列原创 2022-03-31 14:15:13 · 2166 阅读 · 0 评论 -
21_OpenCV复制矩阵
本文是关于矩阵复制的相关函数。1. cv::repeat() 根据需要重复多次复制函数原型:void cv::repeat( cv::InputArray src, // input 2-dimensional array int nx, // copies in x-direction int ny, // copies in y-direction cv::OutputArray dst // result array);cv::Mat cv::repeat( //原创 2022-03-30 11:31:55 · 2166 阅读 · 0 评论 -
20_OpenCV实现简化的函数cv::reduce()
cv::reduce()函数原型:void cv::reduce( cv::InputArray src, // input n-by-n 2-dimensional cv::OutputArray vec, // output, 1-by-m or n-by-1 int dim, // reduction direction 0=row, 1=col int reduceOp = cv::REDUCE_SUM, // reduce operator (see #reduceop_ar原创 2022-03-28 14:17:47 · 3207 阅读 · 0 评论 -
19_OpenCV随机数
本文内容:OpenCV中与随机数有关的函数:cv::randu()、cv::ranfn()、cv::randShuffle()。1. cv::randu()函数原型:template<typename _Tp> _Tp randu(); // return random number of specific typecv::randu( cv::InputOutputArray mtx, // all values will be eandomized cv::Input原创 2022-03-28 11:34:41 · 3197 阅读 · 0 评论