zoukankan      html  css  js  c++  java
  • 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接口的很多函数需要配对使用,比如:创建矩阵后需要释放矩阵,相对来说,代码量要大一些,一个不小心就会出现内存泄漏。

    
  • 相关阅读:
    Windows编程的Notification和Message
    static局部变量的默认初始化规则
    Windows消息的wParam和lParam及一些函数类似参数的一些用法简记
    阅读与检索
    多线程编程的几个关键点
    MSDN使用之菜单索引
    从不同角度简单阐述消息机制
    Windows程序中什么事件发生时,窗口过程会收到一条WM_SIZE消息
    三色二叉树——树形dp
    2020数学网课知识点总结
  • 原文地址:https://www.cnblogs.com/ggzone/p/10121351.html
Copyright © 2011-2022 走看看