• OpenCV:初试牛刀-显示图像-1


    OpenCV开发包提供了读取各种类型的图像文件、视频内容以及摄像机输入的功能。这些功能是OpenCV开发包所包含的HighGUI工具集的一部分。

    先看两个小例子:

    #include"opencv2/highgui/highgui.hpp"
    
    int main()
    {
    	IplImage* img = cvLoadImage("123.jpg");
    	cvNamedWindow("Demo1",CV_WINDOW_AUTOSIZE);
    	cvShowImage("Demo1", img);
    	
    	cvWaitKey(0);
    	cvReleaseImage(&img);
    	cvDestroyWindow("Demo1");

    cvLoadImage()函数是一个高层调用接口,它通过文件名确定被加载文件的格式,并且该函数将自动分配图像数据结构所需的内存。cvLoadImage()函数可读取绝大多数格式类型的图像文件,包括BMP,DIB,JPEG,JPG,PNG,PBM,PGM,PPM,SR,RAS和TIFF。该函数执行完后将返回一个指针,此指针指向一块为描述该图像文件的数据结构(IplImage)而分配的内存块。

    cvNamedWindow()第一个参数指定了该窗口的标题,同时也作为该窗口的索引。第二个参数可选0或CV_WINDOW_AUTOSIZE,为0时图像根据窗口大小进行伸缩,为CV_WINDOW_AUTOSIZE时,窗口根据图片大小伸缩。


    #include"opencv2/highgui/highgui.hpp"
    using namespace cv;
    
    int main()
    {
    	Mat image = imread("123.jpg");
    	imshow("Demo2", image);
    	cvWaitKey(0);
    }

    imread和cvloadimage有什么异同啊?

    OpenCV提供C接口和C++接口,功能是一样的。选用何种接口,完全取决于个人爱好。
    如果你的程序是C风格的,最好选用C接口,如果是C++风格的,最好选用C++接口。
    C接口的很多函数需要配对使用,比如:创建矩阵后需要释放矩阵,相对来说,代码量要大一些,一个不小心就会出现内存泄漏。

    
  • 相关阅读:
    Oracle查询中将结果列按分组用逗号隔开,拼接成一行(listagg函数)
    Oracle SQL获取每个分组中日期最大的一条数据
    oracle字段根据字符串拆分,用subStr()和inStr()进行拆分
    javascript求最大公约数
    javascript单链表
    防input required属性的提示框
    css3绘制三色字
    js和php时间戳的问题
    ajax使用的一些错误
    浏览器js文件未及时更新问题
  • 原文地址:https://www.cnblogs.com/ggzone/p/10121351.html
Copyright © 2020-2023  润新知