b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

stretchdibits_halcon himage bitmap_dibrgbcolors

电脑杂谈  发布时间:2017-02-04 08:10:18  来源:网络整理

stretchdibits_dibrgbcolors_halcon himage bitmap

opencv DrawToHDC图像处理问题?

UpdateData(true);

// TODO: Add your control notification handler code here

CFileDialog fd(TRUE,_T("bmp"),_T(".bmp"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位图文件(*.bmp)|*.bmp||",this);

CString path;

if(fd.DoModal()==IDOK)

{

path=fd.GetPathName();

}

else return false;

//if(pImgEmbed.nSize!=0)cvReleaseImage(&pImgEmbed);

IplImage * pImgEmbed = cvLoadImage((const char *)(LPCTSTR)path, CV_LOAD_IMAGE_UNCHANGED);

CDC* pDC = GetDlgItem(IDC_STATIC1) ->GetDC(); // 获得显示控件的 DC

HDC hDC = pDC ->GetSafeHdc(); // 获取 HDC(设备句柄) 来进行绘图操作

CRect rect;//,rect2; //

//((CStatic*)GetDlgItem(IDC_STATIC1))->GetWindowRect(&rect2);

GetDlgItem(IDC_STATIC1) ->GetClientRect( &rect );

int rw = rect.right - rect.left; // 求出图片控件的宽和高

int rh = rect.bottom - rect.top;

int iw = pImgEmbed->width; // 读取图片的宽和高

int ih = pImgEmbed->height;

int tx = (int)(rw - iw)/2; // 使图片的显示位置正好在控件的正中

int ty = (int)(rh - ih)/2;

SetRect( rect, tx, ty, tx+iw, ty+ih );

stretchdibits_dibrgbcolors_halcon himage bitmap

//if(TraceFlag==FALSE) DrawFrame(pImgEmbed,TraceLocation);

CvvImage cimg;

cimg.CopyOf(pImgEmbed); // 复制图片

cimg.DrawToHDC( hDC, &rect ); // 将图片绘制到显示控件的指定区域内

cvWaitKey(50);

ReleaseDC( pDC );

//cvShowImage("水印图像", pImgEmbed);

GetDlgItem(IDC_STATIC1)->ShowWindow(SW_SHOW);

UpdateData(FALSE);

return TRUE;

我用以上程序显示第一幅图片很正常,但是载入以后的图片才发现前面的图片还是存在的,请问高手们,怎么判断是否已显示有图片,并删除旧图片只显示新图片

OpenCV与MFC

OpenCV是计算机视觉自由软件的宝库。但是,由于历史的原因它的软件主要采用类似DOS操作系统的命令行方式,使用十分不便,这也影响了它的推广。如果能将它应用到VC++文档结构中就好了。OpenCV程序在MFC中实现的方法通常是采用CvvImage类,这个类的成员函数DrawToHDC可将位图整体经缩放后显示到视图窗口中,解决了位图的显示问题,也就解决了OpenCV在MFC中的使用问题。但是,也有两个致命的弱点,一是显示方式不合图像处理使用习惯,二是位图必须采用CvvImage类。显示方面,虽然已经能够察看图像,但当位图与窗口的长宽比不一致时会造成图像失真,这是浏览器的显示习惯,并不适用于图像处理应用。图像采集与处理的使用习惯是显示比例1:1,图像未经缩放,显示画面可按窗口大小进行裁剪并可使用滚动条选择显示部位。数据结构方面,采用CvvImage类以后程序中所有位图必须修改成这个类,这对于利用大量OpenCV现成软件来说是十分不方便的。显然,在VC++文档结构中使用OpenCV,其关键还是在于OpenCV位图在MFC中的显示。因此,有必要先比较一下两者的位图结构,然后寻找新的解决方法。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-30453-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...