#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace std;
using namespace cv;
Mat image;
Mat result;
int main()
{
Mat image = imread("F:\\lena.bmp", 0);
if (!image.data)
{
cout << "读入图片失败" << endl;
return -1;
}
double k, b;
cout << "请输入k和b值:";
cin >> k >> b;
int RowsNum = image.rows; //行
int ColsNum = image.cols; //列
Mat dstImg(image.size(), image.type()); //size获取像素个数,type像素类型
//进行遍历图像像素,对每个像素进行相应的线性变换
for (int i = 0; i < RowsNum; i++)
{
uchar* srcData = image.ptr(i); //ptr:获得指向每一行地址的指针
for (int j = 0; j < ColsNum; j++)
{
dstImg.at<uchar>(i, j) = srcData[j] * k + b;
}
}
imshow("原图", image);
imshow("线性变换后的图像", dstImg);
waitKey();
return 0;
}
Opencv 灰度线性变化
最新推荐文章于 2024-07-17 18:07:42 发布