图像处理1:图像的灰度化(c++)

在MFC中的cpp文件中加入头文件

#include 
#include
#include "conio.h"
//#include "opencv2\calib3d\calib3d.hpp"
#include "opencv2/calib3d.hpp"

using namespace std;

using namespace cv;

using std::max;
using std::cout;

using std::endl;

using cv::Mat;

using cv::Scalar;

using cv::imshow;

using cv::line;

如下定义灰度变换的函数

//图像灰度化
Mat gray_img(Mat image)
{
	Mat image_gray = Mat::zeros(image.size(), CV_8UC1);


	for (int i = 0; i < image.rows; i++)
	{
		for (int j = 0; j < image.cols; j++)
		{
			image_gray.at<uchar>(i, j) = 0.11 * image.at<Vec3b>(i, j)[0] + 0.59 * image.at<Vec3b>(i, j)[1] + 0.3 * image.at<Vec3b>(i, j)[2];
		}
	}



	// Show stuff
	//namedWindow("Original Image", 1);
	imshow("gray", image_gray);
	waitKey(0);
	return(image_gray);
}
void CMFCworkDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	Mat image = imread("ema.jpg", 1);
	Mat image_gray= gray_img(image);

}

你可能感兴趣的:(图像处理,c++)