数字图像处理
带翅膀的猫
天天写BUG的软件开发工程师~
展开
-
OpenCV--图像的反色与灰度图显示
对于单通道图像:void Invert1(){ Mat src,dest; src = imread("lena.jpg"); if(!src.data){ cout << "图像载入失败" << endl; return ; } namedWindow("原图像",CV_WINDOW_AUTOSIZE); imshow原创 2017-11-28 17:47:11 · 11629 阅读 · 0 评论 -
OpenCV--图像的加载、显示、修改与保存
图像的加载与显示cv:imread:图像的读取imread有两个参数第一个参数:读取图像的名称(包括路径)第二个参数:表示加载图像的类型, 有三个值: ①IMREAD_UNCHANGED(<0)表示加载原图,不做任何修改 ②IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来原创 2017-11-27 20:25:14 · 3963 阅读 · 0 评论 -
OpenCV--基本阈值操作
阈值二值化(threshold binary) 蓝色线对应值为选定的阈值。所有像素值小于这一值的设定为0,否则设定为最大值1。阈值反二值化(threshold binary inverted) 蓝色线对应值为选定的阈值。所有像素值小于这一值的设定为1,否则设定为最小值0。截断(truncate) 像素值大于阈值的就设定为阈值大小,否则保持不变。阈值取零(threshold to zero)原创 2017-12-02 19:04:44 · 6045 阅读 · 0 评论 -
OpenCV--图像上采样和降采样
图像金字塔 图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。 可以对图像进行放大与缩小。高斯金字塔–降采样高斯金字塔从底向上,逐层降采原创 2017-12-02 12:56:07 · 21980 阅读 · 0 评论 -
OpenCV--提取水平与垂直线(形态学操作应用)
图像形态学操作的时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感,另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作–膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作,得到想要的结果。操作过程:读取原图;转为灰度图像;转为二值图像;定义结构元素;开操作。实例代码:void GetLine(){ Mat src,gr原创 2017-12-01 22:41:09 · 9784 阅读 · 6 评论 -
OpenCV--形态学操作
图像形态学操作–基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。 形态学有四个基本操作:膨胀、腐蚀、开、闭。 膨胀与腐蚀是图像处理中最常用的形态学操作手段。 膨胀与腐蚀都是对于高亮部分进行操作。 膨胀(dilation)跟卷积操作类似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心为锚点,计算B覆盖下A的最大像素值来替换锚点的像素,其中B作为结构体原创 2017-11-30 19:47:09 · 4628 阅读 · 4 评论 -
OpenCV--模糊图像操作
模糊操作时图像处理中最简单和常用的操作之一,使用该操作的原因之一就为了给图像预处理时减低噪声。 使用模糊操作的背后是数学的卷积计算: 其中权重核h(k,l)h(k,l)为“滤波系数”。上面的式子可以简记为: 通常这些卷积算子计算都是线性操作,所以又叫线性滤波。均值滤波(归一化滤波) 均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素原创 2017-11-29 20:57:03 · 14565 阅读 · 0 评论 -
OpenCV--绘制形状与文字
绘制直线void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)实例代码:void DrawLine(){ /* void line(Mat& img, Point pt1, Point pt2, const Scalar&原创 2017-11-29 15:31:40 · 4507 阅读 · 0 评论 -
OpenCV--调整图像亮度和对比度
调整图像亮度和对比度的操作属于像素操作–点操作: g(i,j)=αf(i,j)+β,其中α>0,β是增益变量g(i,j)=\alpha f(i,j) + \beta ,其中\alpha > 0,\beta 是增益变量实例代码://调整图像亮度和对比度void Demo(){ Mat src,dest; src = imread("sanli.jpg"); if(!src.原创 2017-11-29 11:27:18 · 6929 阅读 · 0 评论 -
OpenCV--图像的混合
线性混合操作: g(x)=(1−α)f0(x)+αf1(x)g(x) = (1-\alpha)f_0(x)+\alpha f_1(x) 其中α\alpha的取值在0~1之间。对于输入的两幅图像要求大小和类型必须相同。相关API:void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double g原创 2017-11-29 10:46:51 · 3832 阅读 · 0 评论 -
OpenCV--矩阵的掩膜操作
所谓掩膜其实就是一个矩阵,然后根据这个矩阵重新计算图片中像素的值。 掩膜主要有以下用途:提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。特原创 2017-11-28 13:24:47 · 14221 阅读 · 17 评论