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

    
  • 相关阅读:
    Algorithm --> 最长回文子串
    Algorithm --> 筛法求素数
    c++ --> const关键字总结
    c++ --> 友元函数
    c++ --> static关键字总结
    c++ --> 父类与子类间的继承关系
    c++ --> 操作符重载
    Java设计模式应用——观察者模式
    Ignite集群管理——基于静态IP的节点发现
    线性回归的应用——容量预测
  • 原文地址:https://www.cnblogs.com/ggzone/p/4052434.html
Copyright © 2011-2022 走看看