OpenCV開發包提供了讀取各種類型的圖像文件、視頻內容以及攝像機輸入的功能。這些功能是OpenCV開發包中所包含的HighGUI工具集的一部分。本次主要分享使用OpenCV加載圖像并顯示在屏幕上。 picture_display.cpp: #include #include #include #include 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) ![]() g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS) $(OBJECTS) ![]() 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圖像 ![]() ![]() 源代碼: ![]() 感謝Ickey電子工程社區 fjjjnk1234的分享 |