标题:opencv彩色图像转灰度为什么不能显示啊
只看楼主
froson
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-12-5
结帖率:0
已结贴  问题点数:6 回复次数:1 
opencv彩色图像转灰度为什么不能显示啊
我写的彩色图像转灰度图像的程序为什么新建的窗口显示没问题但是在指定的控件中显示却会出错啊,请高人指点啊!
m_TheImage是我打开的彩色图像
建立的是MFC基本对话框窗口
void DrawPicToHDC(IplImage *img, UINT ID)//显示图片的部分
{
HWND HDialog=FindWindow(NULL, "pic2");
HDC hdc;
hdc=GetDC(GetDlgItem(HDialog,ID));//该函数检索指定的对话框中的控制句柄
CRect rect;
GetClientRect(GetDlgItem(HDialog,ID),&rect);// 该函数获取窗口客户区的坐标,[输出]是一个指针,指向一个RECT类型的rectangle结构
CvvImage cimg;
cimg.CopyOf(img);
cimg.DrawToHDC(hdc,&rect);
ReleaseDC(GetDlgItem(HDialog,ID),hdc);

}
void CPic2Dlg::OnButton2()  
{
IplImage *src=0 ;
IplImage* dst1 = cvCreateImage(cvGetSize(m_TheImage),IPL_DEPTH_8U,1);


cvCvtColor(m_TheImage,dst1,CV_BGR2GRAY);  

 cvNamedWindow("src", 0); //创建图像显示窗口
cvShowImage("src", dst1); //显示图像
 cvSaveImage("reason.bmp",dst1);
 }
这样可以显示,但是换成这个就不行了为什么啊:
void CPic2Dlg::OnButton2()  
{
IplImage *src=0 ;
IplImage* dst1 = cvCreateImage(cvGetSize(m_TheImage),IPL_DEPTH_8U,1);


cvCvtColor(m_TheImage,dst1,CV_BGR2GRAY);  
DrawPicToHDC(dst1, IDC_STATIC);//这一句总是不认啊,郁闷了,而且错误也没法调试
 cvSaveImage("reason.bmp",dst1);
 }
搜索更多相关主题的帖子: opencv 图像 彩色 
2010-12-05 00:14
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
得分:6 
CopyOf(image, 1);这个函数拷贝灰度图像时不要用默认的参数,第二个参数用1试试看

2010-12-05 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327932-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved