本文参照浅墨博文:http://blog.csdn.net/poem_qianmo/article/details/19809337;http://blog.csdn.net/poem_qianmo/article/details/20537737
安装
安装时按照步骤进行安装,注意编译器的位数。
出现错误 1error C1083: 无法打开包括文件: “opencv2/core/core.hpp”: No such file or directoryD:\my 文档\Visual Studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\源.cpp
解决方法:明确自己使用的何种编译器,在配置的时候选好Debug x64 or Debug Win32。
出现错误2 error LNK1104: 无法打开文件“opencv_world310.dll”D:\my 文档\Visual Studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\LINK
解决方法:看看添加的库文件的后缀是多少,是lib而不是dll。
还有其他错误:你看看你的图片放到工程文件下了?或者给出图片的路径了?
图像载入与融合
在演示图像载入与融合时,会出现内存不足情况,将调试器从debug改为release,再改回来。
要实事求是,根据图片大小设置相关参数,否则会出现指针异常等非受迫性错误。
addWeighted(imageROI,0.5,logo,0.3,0.,imageROI);
改行代码的意思是将imageROI与logo进行融合,目前只清楚logo后的0.3为logo图片的透明度,从0到1。其他待定
在图像处理领域,我们常常需要设置感兴趣区域(ROI,region of interest)。
定义ROI区域有两种方法,第一种是使用cv:Rect.顾名思义,cv::Rect表示一个矩形区域。指定矩形的左上角坐标(构造函数的前两个参数)和矩形的长宽(构造函数的后两个参数)就可以定义一个矩形区域。
Mat mask =("m2的文件名.jpg",0)
m2.copyTo(imageROI,mask);
在进行融合时,一定要知道文件到底有多大,在之前imread的时候不要轻易改变图片大小,在之后用mask取同一图片的灰度图像,再将mask复制到设置的ROI中,保证两者的大小一致。
双边滤波可以很好的将边缘的像素和其他区别,个人看法如图
读《学习Opencv中文版》笔记:
1.cvNamedWindow(窗口名称,0或者保持默认),创建窗口。0表示,用户可以随意调整窗口大小;默认设置则表示会自动调整窗口大小并不可以让用户调整。
2.cvSaveImage(文件名,要存储的图像)
3.cvMouseCallback(鼠标事件类型,x,y,鼠标事件标志,void指针传递额外参数信息)鼠标回调
4.cvSetMouseCallback(指定有效的窗口,回调函数cvMouseCallback,void指针传递额外参数信息)
有效窗口是只有在该窗口下触发事件才会调用回调函数。
5.cvCreateTrackbar(滚动条名称,显示窗口名,与滚动条关联的数指针,滚动条最大值,回调函数)回调函数为CvTrackbarCallback(不一定叫这个名)
6.CvCapture* xx = cvCreateFileCapture("文件名")读取视频
7.写视频文件可以参考工程duqushexiangtou。
8.直方图绘制,先构造出直方图的数组存储数据,在进行画图。直方图均值化equalizeHist(原图像,目标图像)。详情见MATLAB文件下wangyuhuan工程。
如果对你有帮助,谢谢你^_^
红包还不收?