opencv学习:安装与图像载入,融合
2017-11-22 08:53
253 查看
本文参照浅墨博文: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中,保证两者的大小一致。
be6c
rray dst, int dtype=-1);
第一个参数,InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。
第二个参数,alpha,表示第一个数组的权重
第三个参数,src2,表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数。
第四个参数,beta,表示第二个数组的权重值。
第五个参数,dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数。
第六个参数,gamma,一个加到权重总和上的标量值。看下面的式子自然会理解。
第七个参数,dtype,输出阵列的可选深度,有默认值-1。;当两个输入数组具有相同的深度时,这个参数设置为-1(默认值),即等同于src1.depth()。
在事例中灰度值为0和3通道什么的后续再看。
我的jiqishijue2实现如下:
双边滤波可以很好的将边缘的像素和其他区别,个人看法如图
读《学习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工程。
9.图像金字塔:金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。
高斯金字塔(Gaussianpyramid):
用来向下采样,主要的图像金字塔
拉普拉斯金字塔(Laplacianpyramid):
用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。可以将拉普拉斯金字塔理解为高斯金字塔的逆形式。
函数:PyrDown,PyrUp。PyrUp不是降采样的逆操作,两个函数不是逆操作。down会丢失信息,先卷积再删掉偶数行列;而up是先扩充到指定大小,新的像素值为零,再卷积根据临近的像素去给出新像素的值,这就会使放大的图像显得模糊。
如果对你有帮助,谢谢你^_^
安装
安装时按照步骤进行安装,注意编译器的位数。
出现错误 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中,保证两者的大小一致。
addWeighted函数
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputAbe6c
rray dst, int dtype=-1);
第一个参数,InputArray类型的src1,表示需要加权的第一个数组,常常填一个Mat。
第二个参数,alpha,表示第一个数组的权重
第三个参数,src2,表示第二个数组,它需要和第一个数组拥有相同的尺寸和通道数。
第四个参数,beta,表示第二个数组的权重值。
第五个参数,dst,输出的数组,它和输入的两个数组拥有相同的尺寸和通道数。
第六个参数,gamma,一个加到权重总和上的标量值。看下面的式子自然会理解。
第七个参数,dtype,输出阵列的可选深度,有默认值-1。;当两个输入数组具有相同的深度时,这个参数设置为-1(默认值),即等同于src1.depth()。
在事例中灰度值为0和3通道什么的后续再看。
我的jiqishijue2实现如下:
双边滤波可以很好的将边缘的像素和其他区别,个人看法如图
读《学习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工程。
9.图像金字塔:金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。
高斯金字塔(Gaussianpyramid):
用来向下采样,主要的图像金字塔
拉普拉斯金字塔(Laplacianpyramid):
用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。可以将拉普拉斯金字塔理解为高斯金字塔的逆形式。
函数:PyrDown,PyrUp。PyrUp不是降采样的逆操作,两个函数不是逆操作。down会丢失信息,先卷积再删掉偶数行列;而up是先扩充到指定大小,新的像素值为零,再卷积根据临近的像素去给出新像素的值,这就会使放大的图像显得模糊。
如果对你有帮助,谢谢你^_^
红包还不收?
相关文章推荐
- 学习Opencv2之载入一幅图像并进行平滑处理
- 【OpenCV学习笔记 003】图像的载入、显示和输出
- 小赵学习Opencv(1)之载入图像及垂直水平反转
- 【学习OpenCV】教程三:图像的载入,显示和输出
- opencv学习笔记2——载入,显示,复制,旋转,保存图像及灰度图
- 【OpenCV图像处理入门学习教程三】基于SIFT特征和SURF特征的微旋转图像拼接与融合生成全景图像的比较
- OpenCV 学习笔记(1)安装设置、显示图像
- opencv学习笔记——图像的载入、显示和输出
- opencv学习笔记(十五)——图像融合
- OpenCV 学习笔记(1)安装设置、显示图像
- OpenCV学习 1:OpenCV安装与第一个图像显示程序
- OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- opencv学习笔记之两幅图像显式融合
- opencv学习笔记 一 载入、显示和保存图像
- OpenCV学习--实现两幅图像的融合
- opencv学习笔记-图像载入、显示、保存
- opencv学习(十四)之图像颜色通道分离和融合
- 学习openCV之读取图像和感兴趣区域融合
- Opencv学习三-图像的载入,显示和输出