基于OpenCV与MFC的数字图像处理

 1.灰度化与二值化

//读取原图
	Mat img;
	img = imread("../Leana.png");

	//灰度化
	Mat img_gray = Mat::zeros(img.size(), CV_8UC1);
	//对每个像素点进行处理,I=0.3B+0.59G+0.11R
	int rowNumber = img.rows;
	int colNumber = img.cols;
	for (int i = 0; i < rowNumber; i++)
	{
		for (int j = 0; j < colNumber; j++)
			img_gray.at<uchar>(i, j) = (img.at<Vec3b>(i, j)[0]*0.30 + img.at<Vec3b>(i, j)[1]*0.59+ img.at<Vec3b>(i, j)[2] * 0.11+0.5);
	}
	//cvtColor(img.clone(), img_gray,COLOR_BGR2GRAY);//函数调用

	//二值化
	int threshold_value  = 128; //阈值
	Mat img_binaryzation = Mat::zeros(img_gray.size(), CV_8UC1);
	for (int i = 0; i < rowNumber; i++)
	{
		for (int j = 0; j < colNumber; j++)
		{
			if (img_gray.at<unsigned char>(i, j) < threshold_value)
				img_binaryzation.at<unsigned char>(i, j) = 0;
			else
				img_binaryzation.at<unsigned char>(i, j) = 255;

		}
	}

2.减采样

{
//读取图像
	Mat img_gray;
	img_gray = imread("../Leana.png");
	//灰度化
	cvtColor(img_gray, img_gray, COLOR_BGR2GRAY);

	//减采样
	Mat img_2,img_4,img_16,img_8;
	//2倍
	img_2=Downsampling(img_gray.clone(),2,1);
	//4倍
	img_4 = Downsampling(img_gray.clone(), 2, 2);
	//8倍
	img_8 = Downsampling(img_gray.clone(), 4, 2);
	//16倍
	img_16 = Downsampling(img_gray.clone(), 4, 4);
}


/*  对图像进行降采样  */
Mat CImageProcessingDlg::Downsampling(Mat &mat, int multiple_x=1, int multiple_y=1)
{

	int rows = mat.rows;
	int cols = mat.cols;
	
	Mat DownSamplingImg = Mat(rows/ multiple_x, cols/ multiple_y, CV_8UC1);//采样后结果
	for (int i = 0, c =0; i < rows- multiple_x+1; i+= multiple_x,c++)
	{
		for (int j = 0,d=0; j < cols- multiple_y+1; j+= multiple_y,d++)
		{
			
			DownSamplingImg.at<uchar>(c, d) = mat.at<uchar>(i,j);
		}
	}

	return DownSamplingImg;
}

3.效果图

更多源码请点此处

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值