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等數(shù)據(jù)結(jié)構(gòu),highgui.h主要包括用于圖片顯示的接口。
Mat是OpenCV中特有的矩陣類(lèi),Mat.data是數(shù)據(jù)指針,通過(guò)推斷數(shù)據(jù)指針是否為NULL能夠確定是否讀入圖片數(shù)據(jù)。
namedWindow有兩個(gè)參數(shù),其函數(shù)原型例如以下:
CV_EXPORTS_W void namedWindow(const String& winname, int flags=WINDOW_AUTOSIZE);第一個(gè)參數(shù)winname是窗體名,是窗體對(duì)象的唯一標(biāo)識(shí)。就和人的名字一樣,因此,不能同一時(shí)候有兩個(gè)同樣名字的窗體!flags設(shè)置窗體屬性,缺省參數(shù)值為WINDOW_AUTOSIZE=CV_WINDOW_AUTOSIZE=1。
和matlab中的一樣。有木有。第一個(gè)參數(shù)表示我要在哪個(gè)窗體顯示,第二參數(shù)表示我要顯示那幅圖像,用腳趾頭想一想。是不是有這兩個(gè)參數(shù)就能知道在哪顯示什么了?
另一個(gè)waitKey(int delay=0)表示圖片顯示窗體保留時(shí)間,單位為ms。當(dāng)delay=0時(shí),按下鍵盤(pán)上隨意按鍵才會(huì)關(guān)閉圖像顯示的窗體
用于編譯上述程序的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安裝到默認(rèn)文件夾/usr/local下,因此在使用g++編譯時(shí)要包括鏈接庫(kù)(-L/usr/local/lib/)和頭文件(-I/usr/local/include/opencv/)
注:在OpenCV基礎(chǔ)篇中都使用該格式的Makefile文件,因此后面的例程都能夠拷貝后直接使用,僅僅須要改動(dòng)TARG和SRC參數(shù)就可以!
效果
轉(zhuǎn)載于:https://www.cnblogs.com/yutingliuyl/p/6907523.html
總結(jié)
以上是生活随笔為你收集整理的OpenCV基础篇之读取显示图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (IT/互联网行业)你给自己当前的职位拼
- 下一篇: R语言 文本挖掘 tm包 使用