欢迎来到天天文库
浏览记录
ID:40752035
大小:248.02 KB
页数:4页
时间:2019-08-07
《opencv加载一幅图片01》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、捣鼓了一周,终于有点明白OPENCV了,也终于弄懂了第一个程序,特写点做留念。OPENCV其英文名字就叫OPENCOMPUTERVISIONLIBRARY,顾名思义,就是开源计算机视觉库。何为计算机视觉,即将图像或视频转换成一种策略或一种新的表达方式在做处理,例如将图片转换成某种信号,然后在处理这种信号。学习一个东西开头很困难,我不知道我还能不能坚持下去继续学习,但愿可以坚持,所以有网友戏称,“学习一个新的东西时,有一半人是放弃在开头的”。OPENCV是利用VISUANL的,开始不知道这两个软件怎么连接在一起,这就郁闷了好几天,懂了才知道,OPEN
2、CV就是一个用做信号,图像等方面检测处理的C语言库,只要我们把库添加到VISUAL中便可搞定。然后我们用VISUAL做我们所需要的分析处理。这是我第一个弄懂的例子,做点随笔:#include”highgui.h”Voidmain(){IplImage*img=cvLoadImage(“D:\02.jpg”);cvNamedWindow(“example1”,CV_WINDOW_AUTOSIZE);cvShowImage(“example1”,img);cvWaitkey(0);cvReleaseImage(&img);cvDestroyWindo
3、w(“example1”);}其实这个例子很简单,就是调用显示一张图片了,但是我们从写的程序中可以看出,其中基本上不是我们上课时学的C,这个简单的程序中包含了指针,结构体,在实际应用中更多的是灵活使用这些东西,如果学习C是指针,结构体等没有学好,别说做了,理解都有难度。现在一句一句根据我的理解做解释:#include”highgui.h”这句当然是包含头文件了,highgui.h中包含图像处理,显示等方面的函数。IplImage*img=cvLoadImage(“D:\02.jpg”);该功能是将显示的图像加载至内存,cvLoadImage();
4、执行后返回的是一个指针,此指针指向一块描述该图片属性信息的结构体。IplImage为一个结构体,专门用在图像的处理。我们也可以看下IplImage的数据结构其实他是这样定义的:Typedefstruct_IplImage{Intsize;Intid;IntnChannels;IntalphaChannel;Intdepth;………….}IplImage;由于其中包含的元素太多,输入太麻烦,就简单写了几个,可以看见IplImage是结构体,并且怎么定义的。cvNamedWindow(“example1”,CV_WINDOW_AUTOSIZE);作用在
5、屏幕上创建一个窗口,将被显示的图片包含在该窗口中,函数的第一个参数指定了该创建窗口的标题,第二个参数定义了窗口的属性,CV_WINDOW_AUTOSIZE表示窗口的大小随着图像的大小自动的缩放,如果此处该为0,则窗口的大小固定,不会随图片的大小缩放。cvShowImage(“example1”,img);在创建好的窗口中显示图像,第一个参数设定在你那个已经存在的窗口中显示图片,第二个参数为一个指针。cvWaitkey(0);是程序暂停,等待用户触发一个按键操作,如果其中的参数值设定为正数时,程序暂停该正数个毫秒单位。这里我们也可以尝试,如程序写成:
6、Charc=cvWaitKey(0);If(c==27){break;}意思是说当有ESC键按下时推出,(27为ESC的ASCII码)cvReleaseImage(&img);图片加载完成后,我们释放该图片所分配的内存。cvDestroyWindow(“example1”);释放为创建窗口分配的内存。从学的开始养成良好的习惯,养成释放资源的好习惯总是有好处的。OK,搞定了第一个简单的程序,我们不等止步不前,下一个目标是显示一段视屏。希望我还能坚持下去,为了以后能有饭吃,努力!
此文档下载收益归作者所有