随笔分类 - opencv4
opencv入门笔记,没做太多描述。
git地址:https://github.com/cyssmile/openCV_learning_notes/
摘要:COLOR_BGR2BGRA add alpha channel to RGB or BGR image COLOR_RGB2RGBA COLOR_BGRA2BGR remove alpha channel from RGB or BGR image COLOR_RGBA2RGB COLOR_BGR
阅读全文
摘要:利用opencv将bgr图片转成yuvi420格式,并用uint8_t buf[3]之类的二维数组保存数据。 1.将bgr数据转城yuvi420的unsigned char** 类型 void test_bgr2yuv(Mat &src, unsigned char** yuv_buf) { //创
阅读全文
摘要:1、简单的可见水印 这里的f为未添加水印的图像,常数为控制水印与称底图片的相对可见性。 代码实现: /* * 简单的可见水印 * 要求添加尺寸的图片应该大于水印 * F = (1-a)f + a*w */ void sampleImagesWaterMarking(Mat& src,Mat& wat
阅读全文
摘要:1、频域滤波的步骤小结 1、给定一副大小为M*N的输入图像,首先得到填充参数P和Q,通常填充(满足)。 2、对添加必要数量的0,形成大小P*Q的填充图像。 3、添加的虚部,全部为0即可,合并成新的Mat对象。 4、计算步骤3的图像的DFT,得到,这里要将进行变换。 5、根据相应的算法生成P*Q大小的
阅读全文
摘要:此部分实验包含: 1、算术均值滤波去噪算法 2、几何均值滤波去噪算法 3、谐波均值滤波去噪算法 4、反谐波均值滤波去噪算法 5、中值滤波去噪算法 6、自适应中值滤波去噪算法 7、自适应局部降低噪声滤波器去噪算法 当一副图片中唯一存在的退化是噪声时,就有和这两个公式,其中是噪声项,且是未知的。所以从中
阅读全文
摘要:主要是实现常见的空域滤波,这篇属于造轮子的实验我就简单的贴下代码。 1、原图填充 使用模板进行空域滤波需要对原图进行填充,这样才会让处理后的图片的大小和原图一样大。 首先要获取需要填充的大小,Length 是具体的一个方向比如横向,step是步长,空域滤波的时候默认长度为1,kernelSize是使
阅读全文
摘要:对于输入像素点r和输出像素点s都在灰度级 [0,L-1]之间,r = 0 代表黑色, r = L - 1代表白色。对于r和s的变换形式为: r和s满足一下条件: 利用反函数来从s推r时,有以下定义: r和s满足条件: 条件a是为了保证输出的灰度级不少于输入,这是为了防止二义性。条件b是为了保证输出的
阅读全文
摘要:实验内容: 1、利用opencv读取图片 在opencv中读取一张图片使用imread()函数,比如: Mat src = imread("D:/images/dog.jpg", IMREAD_COLOR)。 imread()一般有两个参数,前一个是图片地址,另外一个是读取图片的格式。 这里采用的I
阅读全文
摘要:今天闲着无聊,做了一下银行卡卡号的roi获取。 记录下实验步骤: 1. 图片灰度化 2. 采用OSTU方式二值化 3. 先对二值化图片开操作,然后膨胀操作 4.发现轮廓 注意这里选择参数RETR_LIST 或者RETR_TREE,不要用RETR_EXTERNAL 5.根据长宽比,得到具体ROI
阅读全文
摘要:这一节也是shi_tomasi角点检测。 涉及的api: @param image Input 8 bit or floating point 32 bit, single channel image. @param corners Output vector of detected corners
阅读全文
摘要:这里有篇原理讲解的,有兴趣自己看。https://www.cnblogs.com/Jack Elvis/p/11640931.html 在opencv有专门的函数: The function runs the Harris corner detector on the image. Similarl
阅读全文
摘要:最近有点事,这两天都没有更新。出去玩耍还是要注意安全啊。今天正好有点空,我做了一下证件照抠图。本次基于的方法是传统方法,没有使用深度学习之类的。 我采用了两种方法抠图。 寻找边缘,然后位运算。 下面是实验效果: 原图: 边缘: 抠图结果: 以下是我的实现代码 第二种方法 我采用从色彩空间RGB 转到
阅读全文
摘要:今天闲着无聊。在《数字图像处理 第三版》 P410 有个对指纹处理的实验,我进行了模拟一下。 首先这个指纹来自网上,其次这个原图指纹图没太多噪声,最后就是感觉处理效果也不太好。 这里开操作主要可以去除噪声之类,闭操作可以用于填充裂痕。 我就模拟了开操作后闭操作。具体的每个部分比如原图的腐蚀,开操作后
阅读全文
摘要:这里所有的故事开始都和 VideoCapture有关哦。 / @brief Default constructor @note In @ref videoio_c "C API", when you finished working with video, release CvCapture str
阅读全文
摘要:1. 基本梯度 基本梯度 = 膨胀 腐蚀 2. 内梯度 内梯度 = 原图 腐蚀 3. 外梯度 外梯度 = 膨胀 原图 示范: 原图: 基本梯度: 内梯度: 外梯度: 本节代码地址: https://github.com/cyssmile/openCV_learning_notes/blob/mast
阅读全文
摘要:开操作可以和结构元素结构一起使用,提取想要的东西。 1. 提取横线 原图: 先用Canny 提取边缘 结构元素,提取横线 这种提取直线比霍夫直线检测稍微好点,可以降低噪声的干扰 2. 提取竖线 操作相同,更改结构元素 本节示范代码: include include include using nam
阅读全文
摘要:操作主要用于填充闭合区域 闭操作 = 膨胀 + 腐蚀 实验效果: Size(3,3) Size(6,6) 这时候明显内环消失 Size(11,11) Size(22,22) 黑帽 黑帽: 原图 闭操作 可以提取封闭区域细节部分 参数为:MORPH_BLACKHAT 本节示例代码地址: https:/
阅读全文
摘要:图片的开操作 开 = 腐蚀 + 膨胀 用于保留原结构, 去除干扰块 opencv中有相关的API 当op参数为 MORPH_OPEN 就是一次开操作 我自定义了一次:erode dilate Mat tophat; morphologyEx(src, tophat, MORPH_TOPHAT, ke
阅读全文
摘要:本节原理在《数字图像处理第三版》P404 本节涉及两个API 腐蚀 $$ \texttt{dst}(x,y)=\min _{(x',y'):\,\texttt{element}(x',y')\ne0}\texttt{src}(x+x',y+y') $$ / @brief Erodes an imag
阅读全文
摘要:opencv中相关API 实验效果: 示例代码地址:https://github.com/cyssmile/openCV_learning_notes/blob/master/opencv_test/opencv_034/opencv_034.cpp
阅读全文

浙公网安备 33010602011771号