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