OpenCV基础篇之读取显示图片
程序及分析
/* * FileName : read.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 13 May 2014 07:34:25 PM CST * Brief : * * Copyright (C) MICL,USTB */ #include <cv.h> #include <highgui.h>using namespace cv; using namespace std;int main(int argc, char **argv) {Mat img;img = imread(argv[1], 1);if (argc != 2 || !img.data) {cout<<"No image data.\n"<<endl;return -1;}namedWindow("Display Image", CV_WINDOW_AUTOSIZE);imshow("Display Image", img);waitKey(0);return 0; }包括和,cv.h中包括了OpenCV的核心功能,包括Mat等數據結構,highgui.h主要包括用于圖片顯示的接口。
Mat是OpenCV中特有的矩陣類,Mat.data是數據指針,通過推斷數據指針是否為NULL能夠確定是否讀入圖片數據。
namedWindow有兩個參數,其函數原型例如以下:
CV_EXPORTS_W void namedWindow(const String& winname, int flags=WINDOW_AUTOSIZE);第一個參數winname是窗體名,是窗體對象的唯一標識。就和人的名字一樣,因此,不能同一時候有兩個同樣名字的窗體!flags設置窗體屬性,缺省參數值為WINDOW_AUTOSIZE=CV_WINDOW_AUTOSIZE=1。
和matlab中的一樣。有木有。第一個參數表示我要在哪個窗體顯示,第二參數表示我要顯示那幅圖像,用腳趾頭想一想。是不是有這兩個參數就能知道在哪顯示什么了?
另一個waitKey(int delay=0)表示圖片顯示窗體保留時間,單位為ms。當delay=0時,按下鍵盤上隨意按鍵才會關閉圖像顯示的窗體
用于編譯上述程序的Makefile例如以下:
TARG=read SRC=read.cpp LIB=-L/usr/local/lib/ INC=-I/usr/local/include/opencv/ CFLAGS=-g$(TARG):$(SRC)g++ -o $@ ${CFLAGS} $(LIB) $(INC) -lopencv_core -lopencv_highgui $^.PHONY:cleanclean:-rm $(TARG) -f我將OpenCV安裝到默認文件夾/usr/local下,因此在使用g++編譯時要包括鏈接庫(-L/usr/local/lib/)和頭文件(-I/usr/local/include/opencv/)
注:在OpenCV基礎篇中都使用該格式的Makefile文件,因此后面的例程都能夠拷貝后直接使用,僅僅須要改動TARG和SRC參數就可以!
效果
轉載于:https://www.cnblogs.com/yutingliuyl/p/6907523.html
總結
以上是生活随笔為你收集整理的OpenCV基础篇之读取显示图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (IT/互联网行业)你给自己当前的职位拼
- 下一篇: R语言 文本挖掘 tm包 使用