日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv java 显示图片_【opencv三】利用opencv读取显示图片

發布時間:2024/10/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv java 显示图片_【opencv三】利用opencv读取显示图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在opencv中讀取顯示圖片的頭文件是highgui.hpp。

整體代碼如下,如要測試自己的圖片,需要將代碼段中的圖片地址更改為自己圖片的絕對路徑。

#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main()

{

Mat img = imread("H://vs2017//opencv_learning//ConsoleApplication1//1544516218.jpg");

if (img.empty())

{

return -1;

}

namedWindow("Example1",WINDOW_AUTOSIZE);

imshow("Example1",img);

waitKey(0);

destroyWindow("Example1");

return 0;

}

代碼解析:

Mat img = imread("Your Img Path");

imread函數:可以讀取很多類型的圖片,包括:BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS, and TIFF。最終返回一個Mat數據類型的數據,這是opencv處理的基礎數據結構。

namedWindow("Example1",WINDOW_AUTOSIZE);

namedWindow函數:在屏幕上打開一個窗口,改窗口用來顯示讀取的圖像,括號中的參數是預先定義了顯示窗口的屬性,第一個參數將窗口命名為“Example1”,第二個參數定義了窗口的屬性,該參數默認值為“0”或者置為“WINDOW_AUTOSIZE”。

參數“0”:圖片顯示的時候,不會考慮原始圖片的尺寸,會根據窗口的大小顯示。

參數“WINDOW_AUTOSIZE”:通過改變窗口尺寸,顯示圖片真實的大小。

但此時圖片還未顯示,該指令僅僅是為圖片的顯示作準備工作。一般顯示狀態如下圖所示。

imshow("Example1",img);

imshow函數:利用該函數將Mat數據結構顯示在已經存在的窗口中(由namedWindow函數生成的窗口)。根據上述的參數“WINDOW_AUTOSIZE”,窗口的大小會自動根據原始圖像的尺寸進行調整,并顯示。

waitKey(0);

waitKey函數:該函數的參數可以是任意自然數。

參數為‘0或者負數’:當讀取到鼠標點擊信號后,進入下面的程序段。

參數為“大于0的自然數”:若該自然數為1000,則其含義為程序等待1000ms(1秒)后進入下面的程序段。

Note:在cv::Mat中,當圖像超出作用域時,它們將被自動釋放,這與標準模板庫(STL)樣式的容器類類似。這個自動重分配由內部引用計數器控制。在很大程度上,這意味著我們不再需要擔心映像的分配和重新分配,這可以讓程序員從OpenCV 1.0 IplImage強加的繁瑣簿記中解脫出來。

destroyWindow("Example1");

destroyWindow函數:該函數會關掉圖片顯示窗口,并且回收內存。

在當前實例中,該函數的功能可以忽略。但未來對于更長的、更復雜的程序,程序員應該確保在超出范圍之前清理窗口,以避免內存泄漏。

總結

以上是生活随笔為你收集整理的opencv java 显示图片_【opencv三】利用opencv读取显示图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。