數字圖像處理:對數變換

設置窗口大小的函數:

namedWindow("窗口名", 0);

resizeWindow("窗口名", width, height);

#include <iostream>
#include <cmath>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
void log_transfor(Mat &image, Mat &result)
{
	result = image.clone();
	int rows = image.rows, cols = image.cols;
	for (int i = 0; i < rows; i++)
	{
		for (int j = 0; j < cols; j++)
		{
			for (int k = 0; k < 3; k++)
			{
				result.at<Vec3b>(i, j)[k] = 31 * log2(1 + image.at<Vec3b>(i, j)[k]);
			}
		}
	}
}
int main()
{
	Mat image = imread("f:\\圖片\\lucky.jpg");
	
	Mat result;
	log_transfor(image, result);
	namedWindow("原圖", 0);
	namedWindow("對數變換", 0);
	resizeWindow("原圖", 500, 600);
	resizeWindow("對數變換", 500, 600);
	imshow("原圖", image);
	imshow("對數變換", result);
	waitKey(0);
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章