type
status
date
slug
summary
tags
category
icon
password
Email
水寒江静,满目青山,载月明归。——黄庭坚《诉衷情》
文章首发于我的个人博客:欢迎大佬们来逛逛
图像截取
ROI操作,指的是:region of interest,感兴趣区域。
我们可以对一张图片的某个感兴趣的部分进行截取然后操作,这个截取的过程叫做
ROI
操作。通过三种方法实现ROI操作:
Rect
选定范围
Range
选定范围
selectROI
专用API选择感兴趣区域,
案例代码:
其中具有一个selectROIs的版本,可以让我们选择多个区域。
选择一个区域后按下回车,即可保存这个部分到一个
std::vector<Rect>&
中,因此最终的全部选择的区域都在这个Rect的容器中。其中我们选择好区域后,在使用
Mat
重载的()
运算符即可做到在这张图片中截取一部分:原型如下:

图像掩膜操作
掩膜操作指的是:用一个矩阵和原图像进行卷积运算,重新计算像素值。
因此我们需要定义一个权重表:
- 掩膜矩阵
- 计算公式
掩膜操作可以提高图像的对比度,对比度提高可以增加图像感官度、锐化,让看起来有点模糊的图像更清晰。
使用以下公式可以提高图像的对比度:
对于这个公式的掩膜矩阵可以表示成如下的形式:

因此我们在定义掩膜矩阵的时候就可以使用这个。
我们通过两种方式实现图片的掩膜操作:
filter2D
实现- 我们使用
Mat_
来创建一个指定为3*3
的掩膜矩阵,并且完成赋值。 - 接着使用
filter2D
来实现操作。
- 像素点实现,即对每个像素点执行上面的公式计算。
完整代码实现:
- testFilter2D 使用 filter2D完成掩膜计算。
- testPixel 使用像素点完成掩膜计算。

- 作者:Yuleo
- 链接:https://www.helloylh.com/article/opencv4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。