Opencv 结构与内容:
Cv:基本的图形处理函数和高级的计算机视觉算法
ML:机器学习库 包含基于统计的分类和聚类工具
HighGUI: 图像和视频输入/输出的函数
CXCore:包含opencv的一些基本数据结构和相关函数
显示图像:
#include "highgui.h"
int main(int argc, char** argv){
IplImage* img = cvLoadImage(argv[1]);//将图像文件加载至内存,cvLoadImage函数是高层调用接口,通过文件名确定被加载文件的格式;并且该函数将自动分配图像数据结构所需的内存; IplImage结构体处理各种类型的图像文件
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);//cvNamedWindow由hihhGUI库提供,该函数用于在屏幕上创建一个窗口,将被显示的窗口包含与该窗口中,这个函数第一个参数指定了这个窗口的标题,第二个参数定义了窗口的属性,设置为0时,窗口的大小不会因为图像的大小而改变。,当设置为CV_WINDOW_AUTOSIZE时,窗口会根据俄图像的实际大小自动进行拉伸或缩放
cvShowImage("Example1", img);//cvShowImage函数通过设置其第一个参数确定在哪个已存在的窗口中显示图像
cvWaitKey(0);//使程序暂停等在用户触发一个按键进行操作,如果将里面的参数设为一个正数,则程序将暂停一段时间时间长为该数值个毫秒单位。
cvReleaseImage(&img);//释放为该文件所分配的内存
cvDestroyWindow("Example1");//销毁图像窗口
}
我写的程序
#include "highgui.h"
int main(int argc, char** argv){
IplImage* img = cvLoadImage("C:\\Users\\Administrator\\Desktop\\Example1.jpeg");\\里面填的是的是绝对路径,以上为绝对路径的写法。
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
cvShowImage("Example1", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
return 0;
}
播放AVI视频:
#include "highgui.h"
int main(int argc, char** argv){
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
CvCapture*capture = cvCreateFileCapture("C:\\Users\\Administrator\\Desktop\\Example2.mp4");
IplImage*frame;
while (1) {
frame = cvQueryFrame(capture);
if (!frame) break;
cvShowImage("Example2", frame);
char c = cvWaitKey(33);
if (c == 27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example2");
}