【Rayeager PX2分享】OpenCV入門之圖像顯示

OpenCV開發包提供了讀取各種類型的圖像文件、視頻內容以及攝像機輸入的功能。這些功能是OpenCV開發包中所包含的HighGUI工具集的一部分。本次主要分享使用OpenCV加載圖像並顯示在屏幕上。
picture_display.cpp:
 #include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>


int main (int argc, char **argv)
{
        IplImage* img = cvLoadImage(argv[1]);
        cvNamedWindow("Rayeager PX2", CV_WINDOW_AUTOSIZE);
        cvShowImage("Rayeager PX2", img);
        cvWaitKey(0);
        cvReleaseImage(&img);
        cvDestroyWindow("Rayeager PX2");
}
makefile:


 INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = picture_display.cpp
# 目標文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可執行文件
TARGET = picture_display
$(TARGET):$(OBJECTS)
        g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
        g++ -c $(SOURCES)
clean:
        rm $(OBJECTS) $(TARGET)
# 編譯規則 $@代表目標文件 $< 代表第一個依賴文件
%.o:%.cpp
        g++ -I $(INCLUDE) -o $@ -c $<
代碼講解:
程序中的IplImage* img = cvLoadImage(argv[1]);的功能是將圖像文件加載至內存。cvLoadImage()函數是一個高層調用接口,它通過文件名確定被加載文件的格式;並且該函數自動分配圖像數據結構所需的內存。
cvNamedWindow("Rayeager PX2", CV_WINDOW_AUTOSIZE);
cvNamedWindow()函數也是一個高層調用接口,該函數由HighGUI庫提供。函數用於在屏幕上創建一個窗口,將被顯示的圖像包含於該窗口中。函數第一個參數指定了該窗口的窗口標題,第二個參數定義了窗口的屬性。該參數可被設置爲0或CV_WINDOW_AUTOSIZE,設置爲0時,窗口的大小不會因圖像的大小而改變;設置爲CV_WINDOW_AUTOSIZE時,窗口則會根據圖像的實際大小自動進行拉伸或縮放。
cvShowImage("Rayeager PX2", img);
該函數用於顯示圖像,cvShowImage()函數通過設置其第一個參數確定在哪個已存在的窗口中顯示圖像。
cvWaitKey(0);的功能是使程序暫停,等待用戶觸發一個按鍵操作。
cvReleaseImage(&img);的功能是釋放爲該圖像所分配的內存。
cvDestroyWindow("Rayeager PX2");的功能是銷燬顯示圖像文件的窗口。
 

在源代碼所在的文件夾中make生成可執行文件picture_display,之後./ picture_display Rayeager PX2.jpg就能顯示文件夾中的Rayeager PX2.jpg圖像




源代碼:  picture_display.rar



感謝Ickey電子工程社區 fjjjnk1234的分享
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章