注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小人物的自述

为梦想而奋斗,没有梦想就没有希望!

 
 
 

日志

 
 

OPENCV入门  

2009-07-06 11:28:19|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

看书看了N久,终于自己把简单图像读写和处理程序搞出来,万事开头难,度过了这个坎下一步就要看自己的了。由于书本上的比较麻烦,在参考网上的方法后,本人的完成方法如下:

1.创建单文档程序

2.加入OpenCV库支持:cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib

3.在Doc类中添加变量:CImage m_image。(头文件要包含HighGui.h )

4.Doc类中添加虚函数:OnOpenDocumentOnSaveDocument 如下面的代码 :

BOOL CSDI OpenCVDoc::OnOpenDocument(LPCTSTR lpszPathName){
    if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE;
    // TODO: Add your specialized creation code here
    m_image.Load(lpszPathName);
    return TRUE;
}
BOOL CSDI OpenCVDoc::OnSaveDocument(LPCTSTR lpszPathName){
    // TODO: Add your specialized code here and/or call the base class
    m_image.Save(lpszPathName);
    return TRUE;
   // return CDocument::OnSaveDocument(lpszPathName);
}
上面本来是 return CDocument::OnSaveDocument(lpszPathName); 但是后来发现有问题,保存了图片,
会导致保存后的图片的大小变成0了,改用 return TRUE;就没有问题了
5.View类中添加显示图像代码:
void CSDI_OpenCVView::OnDraw(CDC* pDC)
{
 CSDI_OpenCVDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
 CImage & img = pDoc ->m_image;
 CRect r;
 GetClientRect (&r);
 img.DrawToHDC(pDC->GetSafeHdc() ,r);
}
6.添加处理函数与Doc类中:
void CCvTestDoc::OnCanny()
{
 // TODO: Add your command handler code here
 IplImage *img;
 img=m_image.GetImage();
 IplImage *gray=0,*edge=0;
 gray=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
//此处很重要,一定要写为单通道,不然程序出错,下句同样道理,刚开始写的为img的通道处,
//程序提示说Bad number of channels也不知熬确切原因,本人估计是
cvCvtColor()函数的缘故,
//想深究的可以参看该函数的定义去了解一下





 edge=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
 cvCvtColor(img,gray,CV_BGR2GRAY);
 cvCanny(gray,edge,50,150,3);
 cvCvtColor(edge,img,CV_GRAY2BGR);
 UpdateAllViews(NULL);
}
7.编译整个程序,运行就行了。
  评论这张
 
阅读(872)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017