1 . 定义
掩膜操作是指根据掩膜矩阵(也称作核kernel)重新计算图像中每个像素的值。掩膜矩阵中的值表示了邻近像素值(包括该像素自身的值)对新像素值有多大的影响。从数学的观点来看,我们用自己设置的权值,对像素领域内的值做了个加权平均。
比如,下面这个公式表示用5倍当前像素的值减去该像素上、下、左、右四个像素值和,得到的结果赋值给当前像素。使用该公式可以用于提升图像的对比度。调节I(i,j)的系数权重可以得到不同的对比度提升效果。
I(i,j)=5∗I(i,j)−[I(i−1,j)+I(i+1,j)+I(i,j−1)+I(i,j+1)]
上面的公式可以用掩膜矩阵表示成如下的形式。

2. 自定义的滤波器实现
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui_c.h>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img, dst;
img = imread("D:/VS项目/opencv3/1.jpg", IMREAD_UNCHANGED);
//如果没有读取到图像信息,直接退出
掩膜操作增强图像对比度

本文介绍如何通过掩膜操作调整图像对比度,包括自定义滤波器实现及使用OpenCV API简化流程。展示了利用特定掩膜矩阵计算像素值的具体步骤,并对比了自定义实现与API应用的效果。
最低0.47元/天 解锁文章
2044





