opencv编写笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建工程步骤省略!!!!!!
1、项目—demo(自己取项目名称)属性---配置属性—VC++目录—包含目录:D:\opencv\opencv\build\include;)
2、配置属性—VC++目录—库目录:D:\opencv\opencv\build\x86\vc10\lib
3、链接器—输入—附加依赖项—添加一下这些(针对Debug调试):
opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib
◆按F5运行,若出现这样的情况:无法找到系统文件,缺少…..demo.exe程序。则需
下载tbb41_20130314oss_win.zip
,将其解压后文件夹中包含的bin文件夹,
复制到D:\opencv\opencv\build\common\tbb里;若还不行,可关掉当前文件,重新建立新项目,再进行配置!
◆完成以后,计算机属性---高级系统设置—环境变量---选择path—双击—添加路径:
D:\opencv\opencv\build\x86\vc10\bin;D:\opencv\opencv\build\common\tbb\ia32\vc
10
配置完成!!!!!!
永久的配置:
上述步骤创建的两个属性表OpenCV_debug_property.props和OpenCV_release_property.props保存到一个常用的文件夹中。当创建新工程时,只需在属性管理器中添加上述两个属性表就可,快速完成配置OpenCV的步骤。
学习笔记:
加载图像并显示的程序:
没有把include文件夹里的opencv与opencv2文件夹添加到包含目录下。出现“无法打开源文件”的错误提示(红波浪线)。
●加载播放AVI视频:理解了程序以及各个函数意义:
●载入图像并平滑处理:
这个问题如何解决??改成了
这个!!!!!
载入彩色图像,变为灰度图像,并缩小图像2次,然后进行边缘检测:
高斯滤波算法处理:处理前处理后
主要程序:
中值滤波处理:
处理前处理后
主要程序:
领域平均滤波:
处理前:处理后
下图为小波变换后的图像,通过自己建立小波变换函数与逆变换函数,对任意大小的彩色图像进行任意层次的变换。具体代码已有注释说明,遇到几个问题:
1、刚开始将DWT函数与IDWT函数放在了main函数之后,程序运行
时出现错误:无法找到DWT与IDWT标识符;然而将两个子函数放
在了main函数之前,运行就正确了,但此时还没有图像显示。
2、1正确以后,没有图像显示,我又再最后加了一句cvWaitKey(0);的
语句,再运行,就出现了结果,基本正确。
3、我想连原图一起显示,可是试了好多都不行!!!
小波变换的滤波方法:将原始图像在水平、垂直和对角线方向进行小波分解,将图像分解为1个低频图像和3个高频图像,属于频域滤波!
基本过程:小波变换分解—设置一定的阈值对小波系数进行处理—小波逆变换得到空域图像。
处理前小波变换后
彩色图像直方图均衡化:
原始图像直方图化均衡后
对比度线性展宽:
载入原图如下所示(按着顺序来的):
转换成灰色图像,如下所示:
刚开始我写的程序,在求存放图像各个灰度级出现的次数的时候,将x,y变量的范围只取到了256,所以造成最后变换的图像无法将我载入的图像的所有像素显示完,所以出现了如下结果的照片:
结果经查找资料后发现,x与y的取值范围应该这样来取(选取输入图像的宽度和高度的范围),才能保证载入的图像的所有灰度级都被计算完整:
将程序改成这样以后,再运行,就能的到一张完整的经过对比度调整的图像:
本来打算加几行代码,也显示对比度增强的彩色图像,结果发现按照我自己的想法加上代码,变成了这样:右侧的全灰是因为取得255造成的;而且我还觉得图像好像都左右颠倒一下,这是为什么???彩色依然显示灰色是因为只有一个通道
“3“是”1“的时候
将1通道改成3了以后,为什么只会显示一半的彩色图像???
把3改成了4,没有彩色,反而有种加了颜色的感觉;就变成了这个样子的了!!!!!
彩色对比度增强的程序:,没成功:::
后面的程序就是对比度增加的程序了!!!!!!!
int main()
{
IplImage*in_color=cvLoadImage("pp.jpg",-1);//载?入¨?图ª?像?
cvNamedWindow("原-图ª?",CV_WINDOW_AUTOSIZE);
cvShowImage("原-图ª?",in_color);
IplImage*Y=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);
IplImage*Cb=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);
IplImage*Cr=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,1);
IplImage*Compile_Ycbcr=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,3);
IplImage*dst1=cvCreateImage(cvGetSize(in_color),IPL_DEPTH_8U,3);
int i;
cvCvtColor(in_color,dst1,CV_BGR2YCrCb);///CV_BGR2YCrCb=36* Constants for color