![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
opencv自学
文章平均质量分 52
进屋先抖雪
这个作者很懒,什么都没留下…
展开
-
opencv基本阈值操作
阈值的概念 像素的一个标尺,比如同一幅图上大于阈值像素和小于阈值像素的像素点进行不同处理 opencv中常见图像阈值的类型 首先先给一张原图片,方便看出各种操作的不同效果 阈值二值化(THRESH_BINARY) 表示将图中大于规定阈值(蓝色线)的像素点都变为255,小于该阈值的像素点都变为0,从而实现通过阈值的二值化。 代码: int Threshould_value = 125; int Threshould_max = 255; threshold(dst, src, Threshould_va原创 2021-03-30 23:29:54 · 250 阅读 · 0 评论 -
opencv图像的上采样和下采样
图像金字塔 话不多说,直接上图片 图像金字塔实际上就是对图像的放大和缩小操作 其中,从上层金字塔变到下层叫上采样(其实就是放大图片),原创 2021-03-26 22:02:20 · 292 阅读 · 0 评论 -
opencv提取图片水平线,垂直线和文字
原理方法 先说原理:通过膨胀和腐蚀操作,通过改变输入的结构元素实现提取水平线和垂直线文字 提取步骤 输入彩色图像(imread) 转换为灰度图像(cvtColor) 灰度图像装换为二值图像(adaptiveThreshold) 定义结构元素 开操作(腐蚀膨胀)提取目标对象 注意: 提取水平线或者垂直线或者文字取决于你定义的结构元素不同而不同,下面会详细说明不同的结构元素。 演示 提取水平线 结构元素的定义: Mat hline = getStructuringElement(MORPH_RECT, Si原创 2021-03-24 14:26:37 · 616 阅读 · 0 评论 -
图像的开,闭,顶帽,黑帽,形态学梯度的操作
相关API(morphologyEx) morphologyEx(src,dest,CV_MOP_BLACKHAT,kernel,int iteration) { Mat src ;输入图像 Mat dest ;输出结果 CV_MOP_BLACKHAT ; } 开操作(open) 方法: 先腐蚀(erode)后膨胀(dilate) 作用: 当目标对象有小的噪点干扰时,可以通过该办法清楚干扰项 实例展示 原图是这样的 通过开操作后变成这样的 可以看出,通过开操作后,目标对像周围的干扰对象被显著降低,但目标原创 2021-03-12 22:48:42 · 215 阅读 · 0 评论 -
opencv图像的模糊以及简单美颜效果的实现
几种模糊类型 均值模糊(均值滤波) 但不难看出,均值滤波的边缘像素未被调整。 均值模糊相关API API相关参数: 原图像,输出图像,每次调整的矩阵大小,中心像素位置(Point(-1,-1)表示默认中心位置,一般不改变Point)。 代码示例 #include <iostream> #include<opencv2/opencv.hpp> #include<math.h> using namespace cv; using namespace std; int ma原创 2021-01-27 20:43:39 · 299 阅读 · 0 评论 -
opencv绘制图形和文字
使用函数 画线 void Line(Mat dst) { Point p1 = Point(20, 20);//定义点 Point p2; p2.x = 200; p2.y = 200; Scalar colorLine = Scalar(0, 0, 255);//定义画线的颜色,红 line(dst, p1, p2, colorLine, 2, LINE_AA); //传入参数依次为,原图,画线始末点p1,p2,画线颜色,线粗细,线类型 } 效果 ##画矩形 void Rectan原创 2021-01-26 14:47:35 · 175 阅读 · 0 评论 -
opencv 图像的混合
混合原理 其中f0(x)和f1(x)表示混合的两张图像像素 α表示图片占的权重 g(x)表示混合生成的图像像素 补: 实际的操作时候,及对每一个像素操作得到新像素 相关API 参数2和参数3就是两张图片对应的权重,两权重和为1 注意: 混合的两图像一定要大小,通道数一致!!! 混合效果演示(alpha值各占0.5): 混合前的两张图像 图一: 图二: 混合后: 代码: #include <iostream> #include<opencv2/opencv.hpp> #inc原创 2021-01-25 10:49:38 · 115 阅读 · 0 评论 -
opencv Mat对象
Mat对象 解释: opencv2.0以后引入的图像数据结构,自动分配内存,是面向对象的数据结构,分为头部分和数据部分 Mat 对象的使用要点 Mat对象的创建 示例: Mat m(3, 3, CV_8UC3, Scalar(255, 0, 255)); //定义一个3*3矩阵,3通道,每一个像素颜色都为(255,0,255)的图像m 如果这个时候直接cout输出m的话,会是这样的一个矩阵行上的每三个数表示一个像素块(这三个数既决定该像素块的颜色) 补: 两个初始化Mat对象的小技巧 这样初始化的矩原创 2021-01-18 20:20:02 · 90 阅读 · 0 评论 -
c++ opencv实现矩阵掩膜
掩膜详解 掩膜 简单来说,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。 用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以足胶片、滤光片等。 ...原创 2021-01-14 13:25:59 · 757 阅读 · 3 评论 -
RGB图灰度及通道理解
RGB图像理解 话不多说,直接举例 在彩色图像(或者说是RGB图像)中,可以用P(400,300,3)这样一个三维矩阵表示。其中,前面的400,300表示的是图像的空间信息,400表示行数,300表示列数。 3表示的是有三种基本颜色(红R,绿G,蓝B)的通道,在其中一层矩阵如(400,300,1)红色通道矩阵,表示该颜色红色光的灰度值。 这里要解释一下灰度值概念,灰度值不是字面意义上的"黑白"值,而是指某颜色的亮度值,如上面(400,300,1)表示红色通道矩阵,红色的灰度值就储存在其中。 每一个颜色通道原创 2021-01-13 14:47:00 · 2060 阅读 · 0 评论 -
c++ opencv imread函数浅解
opencv中imread函数 作用 在opencv中,通过imread函数从计算机文件目录下获取图片。 头文件 要使用imread函数,需在配置好opencv的项目下包含头文件。 #include<opencv2/opencv.hpp> 参数 图片路径 要加载的图片在当前计算机的位置,可以直接找到图片复制其路径。 注意: 当前图片从计算机复制的路径形如C:\test.jpg记得把其中的“\”替换为“/”或者“/”形如C:/test.jpg不然会报错。 一般图片复制的路径意思为图片在当前路径原创 2021-01-13 12:37:43 · 6111 阅读 · 0 评论