OpenCV灰度化图像

Posted ldxsuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV灰度化图像相关的知识,希望对你有一定的参考价值。

OpenCV2版本号非常多函数发生了变化。比如二值化,其演示样例:

void CmyMFC2Dlg::OnBnClickedButton1()
{
	// TODO: Add your control notification handler code here
	// 读入一张图片  
	Mat mat=imread("test.jpg");  
	Mat mat2;  
	//cvCvtColor(mat,mat2, CV_BGR2GRAY);  
	cvtColor(mat,mat2, CV_BGR2GRAY);
	/*
	imshow("o",mat0);
	imshow("r",mat);  */
	CDC* pDC = GetDlgItem(pic)->GetDC();
	HDC hDC = pDC->GetSafeHdc();
	IplImage img = mat;
	CvvImage cimg;
	cimg.CopyOf( &img );
	CRect rect;
	GetDlgItem(pic)->GetClientRect(&rect);
	cimg.DrawToHDC(hDC, &rect);
	ReleaseDC( pDC );

	CDC* pDC2 = GetDlgItem(pic2)->GetDC();
	HDC hDC2 = pDC->GetSafeHdc();
	IplImage img2 = mat2;
	CvvImage cimg2;
	cimg2.CopyOf( &img2 );
	CRect rect2;
	GetDlgItem(pic2)->GetClientRect(&rect2);
	cimg2.DrawToHDC(hDC2, &rect2);
	ReleaseDC( pDC2 );

	/*
	CDC* pDC = GetDlgItem(pic)->GetDC();
	HDC hDC = pDC->GetSafeHdc();
	//	CDC* pDC2 = GetDlgItem(IDC_STATIC2)->GetDC();
	HDC hDC2 = pDC->GetSafeHdc();
	IplImage img = mat;
	//IplImage img2 = mat0;
	CvvImage cimg;
	//CvvImage cimg2;
	cimg.CopyOf( &img );
	//cimg.CopyOf( &img2 );
	CRect rect;
	//CRect rect2;
	GetDlgItem(IDC_STATIC)->GetClientRect(&rect);
	//GetDlgItem(IDC_STATIC2)->GetClientRect(&rect2);
	cimg.DrawToHDC(hDC, &rect);
	//cimg2.DrawToHDC(hDC2, &rect2);
	ReleaseDC( pDC );
	//ReleaseDC( pDC2 );

	*/

}

结果:

技术分享图片

能够看到,函数有所变化。

參考文献:

1.OpenCV 2.3.x中文文档。

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_mat.html



以上是关于OpenCV灰度化图像的主要内容,如果未能解决你的问题,请参考以下文章

为啥用二值化处理图像之后,还会有其他的灰度值,尤其是在一些边缘的位置。比如opencv里的cvThreshold

怎样用opencv语句求二值化图像总的灰度值

Android + OpenCV搭建图像灰度化应用

Python图像处理丨基于OpenCV和像素处理的图像灰度化处理

python opencv身份证灰度图二值化应该怎么处理

OpenCV 完整例程37. 图像的灰度化处理和二值化处理