图像处理
文章平均质量分 80
hahahanba
这个作者很懒,什么都没留下…
展开
-
图像处理之形态学操作
形态学操作将neo.png大津二值化之后,进行两次形态学膨胀,腐蚀,开,闭操作处理。在形态学处理的过程中,二值化图像中白色(255)的部分向4−4-4−近邻(上下左右)膨胀或收缩一格 。反复进行膨胀和收缩操作,可以消除独立存在的白色像素点;或者连接白色像素点。此例中的膨胀算法如下:对于待操作的像素I(x,y)=0I(x,y)=0I(x,y)=0,I(x,y−1)I(x, y-1)I(x,y−1),I(x−1,y)I(x-1, y)I(x−1,y),I(x+1,y)I(x+1, y)I(x+1,y原创 2022-05-05 20:00:36 · 918 阅读 · 0 评论 -
图像处理之模式匹配
模式匹配使用误差平方和算法进行模式匹配使用误差平方和进行模式匹配。将neo-temp.png在neo.png中匹配的图像使用红框框出来。模式匹配,即寻找待匹配图像和全体图像中最相似的部分,用于物体检测任务。现在虽然使用卷积神经网络(CNN)来检测物体,但是模式识别仍然是最基本的处理方法。下面介绍具体算法。原图像记为I(H×W)I(H\times W)I(H×W),待匹配图像为T(h×w)T(h\times w)T(h×w):对于图像III:,for ( j = 0, H-h) for ( i =原创 2022-04-16 22:06:00 · 1033 阅读 · 0 评论 -
图像插值处理
图像插值处理问题描述:读取图像,然后对图像进行最近邻插值、双线性插值、双三次插值处理。本文主要侧重于代码的实现,相关的原理性介绍可参考最邻近插值最近邻插值 法的优点是计算量很小,算法也简单,因此运算速度较快。但它仅使用离待测采样点最近的像素的灰度值作为该采样点的灰度值,而没考虑其他相邻像素点的影响,因而重新采样后灰度值有明显的不连续性,图像质量损失较大,会产生明显的马赛克和锯齿现象。可采用下述公示进行图像的最邻近插值,其中I′I'I′为放大后图像,III为放大前图像,aaa为放大率,方括号是四舍原创 2022-03-18 17:33:21 · 347 阅读 · 0 评论 -
图像仿射变换
仿射变换问题描述:读取图像,然后对图像多种仿射变换。仿射变换-缩放与平移现在我们可以利用3×33\times33×3的矩阵来对图像进行多种仿射变换。现,我们记原图像为(x,y)(x,y)(x,y),变换后的图像为(x′,y′)(x',y')(x′,y′)。对于二维空间上的坐标操作,其变换关系满足(在此处,我们可以将此变换操作理解为图像的放大缩小矩阵)下式:(x′y′)=(abcd) (xy)\left(\begin{matrix}x'\\y'\end{matrix}\ri原创 2022-03-17 23:47:12 · 297 阅读 · 0 评论 -
伽马校正-
伽马校正问题描述:读取图像,然后对图像进行伽玛校正。伽马校正这里是一篇写伽马校正比较好的文章,我觉得可以作为背景知识补充。伽马校正用来对照相机等电子设备传感器的非线性光电转换特性进行校正。如果图像原样显示在显示器等上,画面就会显得很暗。伽马校正通过预先增大 RGB 的值来排除显示器的影响,达到对图像修正的目的。由于下式引起非线性变换,在该式中,xxx被归一化,限定在[0,1][0,1][0,1]范围内。ccc是常数,ggg为伽马变量(通常取2.22.22.2):x′=c Iingx原创 2022-03-15 22:37:00 · 1114 阅读 · 0 评论 -
直方图的转化
直方图问题描述:读取图像,然后图像的直方图进行归一化与均衡化。归一化归一化直方图的操作被称作灰度变换(Grayscale Transformation)。它描述的是像素点取值范围从[c,d][c,d][c,d]转换到[a,b][a,b][a,b]的过程。下面我们将imori_dark.jpeg的灰度扩展到[0,255][0, 255][0,255]范围:xout={a(ifxin<c)b−ad−c (xin−c)+a(else ifc≤xin<d)b(else)x原创 2022-03-14 23:18:36 · 352 阅读 · 0 评论 -
常用的边缘检测滤波器
常用的边缘检测滤波器使用常见的边缘检测滤波器(3×33\times33×3)大小,对fate.jpeg进行图像处理。MAX- MIN滤波器:边缘检测用于检测图像中的线。通常这样提取图像中的信息的操作被称为特征提取。MAX-MIN滤波器是一种常见的边缘检测滤波器,其使用网格内像素的最大值和最小值的差值对网格内像素重新赋值。边缘检测通常在灰度图像上进行。MAX-MIN滤波器:// max_min_filtercv::Mat max_min_filter(cv::Mat img, int ker原创 2022-03-12 21:42:40 · 7742 阅读 · 0 评论 -
高斯与LoG滤波器
高斯与LoG滤波器高斯滤波器:使用高斯滤波器(7×77\times77×7)大小,对fate.jpeg进行降噪处理。高斯滤波器是一种可以使图像平滑的滤波器,用于去除噪声。它将中心像素周围的像素按照高斯分布加权平均进行平滑化。这样的(二维)权值通常被称为卷积核(kernel)或者滤波器(filter)。考虑到图像的长宽可能不是滤波器大小的整数倍,我们需要在图像的边缘补000。这种方法称作Zero Padding。并且权值ggg(卷积核)要进行归一化操作(∑ g=1\sum\ g = 1∑&原创 2022-03-10 23:42:14 · 1508 阅读 · 0 评论 -
均值、中值以及Motion滤波器
均值、中值与Motion Filter问题描述:使用三种滤波器(7×77\times77×7)大小,来对fate.jpeg进行图像处理。代码如下(示例):#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <math.h>cv::Mat mean_filter(cv::Mat img, int kernel_size){ int row = img.rows;原创 2022-03-09 23:59:30 · 4047 阅读 · 0 评论 -
图像处理之池化
平均池化与最大池化问题描述:将彩色图像进行平均池化与最大池化代码如下(示例):#include <opencv2/core.hpp>#include <opencv2/highgui.hpp>#include <math.h>// average poolingcv::Mat average_pooling(cv::Mat img) { int width = img.cols; int height = img.cols; in原创 2022-03-09 10:44:35 · 4615 阅读 · 0 评论 -
图像处理之灰度图像转换与二值化
灰度图像与二值化问题描述:将彩色图像转换为灰度图像并进行二值化处理代码如下(示例):#include <opencv2/opencv.hpp>cv::Mat BGR2GRAY(cv::Mat img){ int width = img.cols; int height = img.rows; // CV_8UC1代表单通道的8bit array数组 cv::Mat new_image = cv::Mat::zeros(height, width, CV原创 2022-03-06 23:36:10 · 3720 阅读 · 0 评论 -
图像处理之通道交换
通道交换问题描述:读取图像,然后将RGB\text{RGB}RGB通道替换成BGR\text{BGR}BGR通道。代码如下(示例):#include <opencv2/opencv.hpp>// 通道交换cv::Mat channel_swap(cv::Mat img){ int width = img.cols; int height = img.rows; cv::Mat new_image = cv::Mat::zeros(height, widt原创 2022-03-03 23:51:06 · 671 阅读 · 0 评论