获取图像像素指针
-
CV_Assert(myImage.depth() == CV_8U);
-
Mat.ptr(int i=0)获取像素矩阵指针,索引i表示第i行,从0开始计数;
-
获得当前指针const uchar* current = myImage.ptr(row);
-
获取当前像素点P(row, col)的像素值p(row, col) = current[col];
像素范围处理saturate_cast
-
saturate_cast(小于0的数), 返回0;
-
saturate_cast(大于255的数), 返回255;
-
saturate_cast(0-255之间的数), 返回输入的值本身;
-
这个函数的功能是,确保RGB值的范围处于0-255之间;’
提高图像对比度原理
通过计算,使得当前像素=5*当前像素-(左侧像素+右侧像素+上方像素+下方像素);
这样计算的目的是,使得图像中亮的部分更亮,暗的部分更暗,从而增加图像的对比度;
程序实现
#include <iostream>
#include <opencv2/opencv.hpp>
#include <math.h>
using namespace std;
using namespace cv;
int main() {
// 加载一张普通图片
Mat src, dst;
src = imread("C:\\Users\\Administrator\\Desktop\\background.png");
if (!src.data) {
// 判断是否获取到了图片
printf("Could not load image!\n");
return -1;
}
// 将这张普通图片显示出来
namedWindow("input image", WINDOW_AUTOSIZE)