国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV:創(chuàng)建窗口,圖片顯示和保存

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV:創(chuàng)建窗口,圖片顯示和保存。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

cv2.waitKey()

窗口創(chuàng)建:cv2.namedWindow()

窗口大小調(diào)整:cv2.resizeWindow()

窗口顯示:cv2.imshow()

關(guān)閉窗口:cv2.destroyAllWindows()

圖片讀?。篶v2.imread()

圖片保存:cv2.imwrite()

代碼示例


cv2.waitKey()

int waitKey(int delay=0)

waitKey()的基本邏輯:他會(huì)在一定時(shí)間內(nèi)等待接收鍵盤的一個(gè)值;返回值為鍵盤按鍵的ASCII值;delay表示等待時(shí)間(ms)。

若delay<=0,則表示程序會(huì)無(wú)限制的等待用戶的按鍵事件。

若等待期間沒(méi)有按鍵輸入,則返回 -1 。

常見(jiàn):cv2.waitKey(1000) & 0xFF == ord(‘q’)?

解釋:ord('q')?:返回q的ascii碼,waitKey返回值的范圍為(0-255),通過(guò)??cv2.waitKey(1) & 0xFF?可以將值限定在(0-255)避免程序出現(xiàn)奇怪的BUG。

常用案例:

key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    exit()

窗口創(chuàng)建:cv2.namedWindow()

void nameWindow(const string& winname,int flags = WINDOW_AUTOSIZE)

winname:窗口名字;flags:窗口標(biāo)識(shí),默認(rèn)為WINDOW_AUTOSIZE。

flags

作用
WINDOW_NORMAL 顯示圖像后,允許用戶隨意調(diào)整窗口大小
WINDOW_AUTOSIZE 根據(jù)圖像大小顯示窗口,不允許用戶調(diào)整大小
WINDOW_FREERATIO 窗口大小自適應(yīng)比例
WINDOW_KEEPRATIO 保持圖像的比例

窗口大小調(diào)整:cv2.resizeWindow()

用法:cv2.resizeWindow(window_name, width, height)

不返回任何值;

  • window_name:?將顯示圖像/視頻的窗口的名稱
  • width:? ? ? ? ? ? ? ??新窗口寬度(整數(shù)類型)
  • height:? ? ? ? ? ? ? ?新窗口高度(整數(shù)類型)

窗口顯示:cv2.imshow()

cv2.imshow(winname, img)

winname:一個(gè)字符串,代表要在其中顯示圖像的窗口的名稱。
img:它是要顯示的圖像。

它不返回任何值。顯示時(shí)會(huì)將像數(shù)值范圍映射至 [0,255] 。


關(guān)閉窗口:cv2.destroyAllWindows()

????????You can call destroyWindow() or destroyAllWindows() to close the window and de-allocate any associated memory usage. For a simple program, you do not really have to call these functions because all the resources and windows of the application are closed automatically by the operating system upon exit.
????????

????????您可以調(diào)用destroyWindow()或destroyAllWindows()來(lái)關(guān)閉窗口并取消分配任何相關(guān)的內(nèi)存使用。對(duì)于一個(gè)簡(jiǎn)單的程序,實(shí)際上不必調(diào)用這些函數(shù),因?yàn)橥顺鰰r(shí)操作系統(tǒng)會(huì)自動(dòng)關(guān)閉應(yīng)用程序的所有資源和窗口

void destroyWindow(const string& winname);

winname:需要關(guān)閉的窗口的名稱


圖片讀取:cv2.imread()

imread(const string& filename, int flags = IMREAD_COLOR)

返回值:mat格式,返回讀取的圖片。

參數(shù)1 filename:讀取的圖片文件名,可以使用相對(duì)路徑或者絕對(duì)路徑,但必須帶完整的文件擴(kuò)展名(圖片格式后綴)。

參數(shù)2 flags:一個(gè)讀取標(biāo)記,用于選擇讀取圖片的方式,默認(rèn)值為IMREAD_COLOR,flag值的設(shè)定與用什么顏色格式讀取圖片有關(guān)。

flags 說(shuō)明
IMREAD_UNCHANGED 如果設(shè)置,則按原樣返回加載的圖像(使用Alpha通道,否則會(huì)被裁剪)
IMREAD_GRAYSCALE 如果設(shè)置,則始終將圖像轉(zhuǎn)換為單通道灰度圖像(編解碼器內(nèi)部轉(zhuǎn)換)。
IMREAD_COLOR 如果設(shè)置,請(qǐng)始終將圖像轉(zhuǎn)換為3通道BGR彩色圖像。
IMREAD_ANYDEPTH 如果設(shè)置,則在輸入具有相應(yīng)深度時(shí)返回16位/ 32位圖像,否則將其轉(zhuǎn)換為8位。
IMREAD_ANYCOLOR 如果設(shè)置,則以任何可能的顏色格式讀取圖像。
IMREAD_LOAD_GDAL 如果設(shè)置,使用gdal驅(qū)動(dòng)程序加載圖像
IMREAD_REDUCED_GRAYSCALE_2 如果設(shè)置,則始終將圖像轉(zhuǎn)換為單通道灰度圖像,圖像尺寸減小1/2。
IMREAD_REDUCED_COLOR_2 如果設(shè)置,則始終將圖像轉(zhuǎn)換為3通道BGR彩色圖像,圖像尺寸減小1/2。
IMREAD_REDUCED_GRAYSCALE_4 如果設(shè)置,則始終將圖像轉(zhuǎn)換為單通道灰度圖像,圖像尺寸減小1/4
IMREAD_REDUCED_COLOR_4 如果設(shè)置,則始終將圖像轉(zhuǎn)換為3通道BGR彩色圖像,圖像尺寸減小1/4
IMREAD_REDUCED_GRAYSCALE_8 如果設(shè)置,則始終將圖像轉(zhuǎn)換為單通道灰度圖像,圖像尺寸減小1/8。
IMREAD_REDUCED_COLOR_8 如果設(shè)置,則始終將圖像轉(zhuǎn)換為3通道BGR彩色圖像,圖像尺寸減小1/8。
IMRED_IGNORE_ORIENTATION 如果設(shè)置,請(qǐng)不要根據(jù)EXIF的方向標(biāo)志旋轉(zhuǎn)圖像。

圖片保存:cv2.imwrite()

cv2.imwrite(filename,img,params)

filename:圖片保存的地址,包括圖片文件名及后綴。

img:要保存的圖像數(shù)組。

imwrite函數(shù)是基于文件擴(kuò)展名選擇圖像的格式。通常,使用此功能只能保存8位單通道或3通道(帶有BGR通道順序)圖像,但有以下例外:

?對(duì)于PNG,JPEG2000和TIFF格式,可以保存16位無(wú)符號(hào)(CV_16U)圖像。


?32位浮點(diǎn)(CV_32F)圖像可以保存為PFM,TIFF,OpenEXR和Radiance HDR格式; 使用LogLuv高動(dòng)態(tài)范圍編碼(每像素4個(gè)字節(jié))保存3通道(CV_32FC3)TIFF圖像。


?可以使用此功能保存帶有Alpha通道的PNG圖像。為此,創(chuàng)建8位(或16位)4通道圖像BGRA,其中alpha通道最后。完全透明的像素應(yīng)該將alpha設(shè)置為0,完全不透明的像素應(yīng)該將alpha設(shè)置為255/65535。

如果格式,深度或通道順序不同,請(qǐng)?jiān)诒4嬷笆褂肕at :: convertTo和cv :: cvtColor進(jìn)行轉(zhuǎn)換。或者,使用通用FileStorage I / O函數(shù)將圖像保存為XML或YAML格式。

params:以特定格式保存圖片。

cv2.CV_IMWRITE_JPEG_QUALITY:設(shè)置 .jpeg/.jpg 格式的圖片質(zhì)量,取值為 0-100(默認(rèn)值 95),數(shù)值越大則圖片質(zhì)量越高;


cv2.CV_IMWRITE_WEBP_QUALITY:設(shè)置 .webp 格式的圖片質(zhì)量,取值為 0-100;


cv2.CV_IMWRITE_PNG_COMPRESSION:設(shè)置 .png 格式圖片的壓縮比,取值為 0-9(默認(rèn)值 3),數(shù)值越大則壓縮比越大。

返回值:保存成功返回 True,否則返回 False。


代碼示例

import cv2
# 讀取圖片 211*400
img = cv2.imread('D:\Tom.jpg', flags = cv2.IMREAD_COLOR)
# 創(chuàng)建窗口,命名為Demo
cv2.namedWindow('Demo', cv2.WINDOW_NORMAL)
# 調(diào)整窗口大小w
cv2.resizeWindow('Demo', 422, 800)
while 1:
    # 在窗口內(nèi)顯示圖片
    cv2.imshow('Demo', img)
    # 等待按鍵結(jié)束窗口
    key = cv2.waitKey(0)
    # 按 q 退出程序
    if key & 0xFF == ord('q'):
        break
    # 按 s 保存圖片
    elif key & 0xFF == ord('s'):
        cv2.imwrite('D:\Demo.jpg', img)
#關(guān)閉所有窗口,釋放資源
cv2.destroyAllWindows()

預(yù)覽窗口cv2,機(jī)器視覺(jué),opencv,計(jì)算機(jī)視覺(jué),python


參考:

cv2.waitKey()_長(zhǎng) 青的博客-CSDN博客

cv2.waitKey的入門級(jí)理解_山上有強(qiáng)強(qiáng)的博客-CSDN博客

python cv2.waitKey()函數(shù)_漫天丶飛雪的博客-CSDN博客

3-2 如何通過(guò)OpenCV創(chuàng)建顯示窗口_嗶哩嗶哩_bilibili

opencv中namedWindow( )函數(shù)用法總結(jié)(02)tu_洛克家族的博客-CSDN博客

OpenCV中namedWindow()函數(shù)使用_opencv銝要amedwindow_鄭德帥的博客-CSDN博客

【OpenCV 例程300篇】03. 圖像的顯示(cv2.imshow)_youcans_的博客-CSDN博客

OpenCV中的destroyallWindows的作用_hanjie-chen的博客-CSDN博客

Python OpenCV resizeWindow()用法及代碼示例 - 純凈天空

https://www.cnblogs.com/mangoroom/archive/2019/06/10/10999151.html

cv.imread()函數(shù)_幼稚園的扛把子~的博客-CSDN博客

【OpenCV 例程300篇】02. 圖像的保存(cv2.imwrite)_youcans_的博客-CSDN博客

python-opencv第二期:imwrite函數(shù)詳解_cv2.imwrite_Kamen Black君的博客-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-803488.html

到了這里,關(guān)于OpenCV:創(chuàng)建窗口,圖片顯示和保存的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python中圖片讀取和保存以及plt.imshow()與cv2.imshow()顯示圖像顏色錯(cuò)誤解決方案

    python中圖片讀取和保存以及plt.imshow()與cv2.imshow()顯示圖像顏色錯(cuò)誤解決方案

    最近調(diào)試程序的時(shí)候,發(fā)現(xiàn)要保存的圖片顏色與原圖片有色差(顯示圖像變藍(lán)),郁悶良久,終于發(fā)現(xiàn)問(wèn)題,望諸君避坑。 ??在用plt.imshow和cv2.imshow顯示同一幅圖時(shí)可能會(huì)出現(xiàn)顏色差別很大的現(xiàn)象。 ??原因:opencv的接口使用BGR,而matplotlib.pyplot 則是RGB模式。 單獨(dú)使用圖像是

    2024年02月11日
    瀏覽(30)
  • cv2保存圖片類型錯(cuò)誤執(zhí)行報(bào)錯(cuò)cv2. error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function ‘imwrite‘ - img i

    硬件環(huán)境(Ascend/GPU/CPU): GPU 軟件環(huán)境: – MindSpore 版本: 1.7.0 執(zhí)行模式: 靜態(tài)圖(GRAPH) – Python 版本: 3.7.6 – 操作系統(tǒng)平臺(tái): linux 將優(yōu)化好的圖像用cv2進(jìn)行圖片保存,由于沒(méi)有將tensor轉(zhuǎn)換為numpy,導(dǎo)致cv2.imwrite運(yùn)行失敗。 adversarial_tensor, mask_tensor = adversarial.train(attack_method) cv2.imwrit

    2024年02月17日
    瀏覽(22)
  • cv2 保存圖片RGB BGR

    cv2 保存圖片RGB BGR

    原圖: cv2.imrite之后的圖: 可以看到前后圖片一樣,我們都知道cv2 .imread讀取進(jìn)來(lái)的圖像是BGR格式,而cv2.imrite保存的時(shí)候也需要BGR格式,這樣保證顏色通道順序一致。 通常情況下,我們都需要轉(zhuǎn)換成RGB的格式進(jìn)行后續(xù)處理,看下面的例子 而保存的圖像卻是: 可以看到顏色前

    2024年02月12日
    瀏覽(27)
  • opencv(4): cv2.imwrite()圖像的保存

    語(yǔ)法格式:retval = cv2.imwrite(filename, image [, paras]) 參數(shù)說(shuō)明: filename :代表文件名的字符串。文件名必須包含圖像格式,例如.jpg,.png等。 image :圖像數(shù)據(jù)矩陣 paras: 不同編碼格式的參數(shù),可選項(xiàng) cv2.CV_IMWRITE_JPEG_QUALITY :設(shè)置 .jpeg/.jpg 格式的圖片質(zhì)量,取值為 0-100(默認(rèn)值 95)

    2024年02月01日
    瀏覽(101)
  • (P4)Python plt顯示和保存圖像(cv2、Image)

    (P4)Python plt顯示和保存圖像(cv2、Image)

    對(duì)這篇博客內(nèi)容的最最簡(jiǎn)要的總結(jié),便于快速抓要點(diǎn) 以下是一張圖中包含多張小圖 的三種不同寫法的匯總和拆解。 匯總 ? 寫法一 寫法二 寫法三 已知的讀取圖片方式有兩種:cv2、Image,初略講解如下,有需要更多講解的再單獨(dú)整合。 寫法一 cv2 參考資料 opencv 因?yàn)闅v史原因

    2024年01月24日
    瀏覽(36)
  • 解決opencv, cv2.puttext函數(shù)無(wú)法顯示中文字符

    背景: opencv內(nèi)置的cv2.puttext函數(shù)不能顯示中文字符,嘗試了下列方法: (1)cv2.freetype。沒(méi)有這個(gè)庫(kù); (2)opencv無(wú)法導(dǎo)入中文字體庫(kù); (3)卸載opencv-python,安裝opencv-python-headless, opencv- contrib-python 方法: 使用PIL庫(kù)作為中轉(zhuǎn) 下載中文字體庫(kù)https://github.com/StellarCN/scp_zh/blob/master/fonts/S

    2024年02月13日
    瀏覽(61)
  • opencv中調(diào)整圖像顯示框大小,cv2.namedWindow()

    如果要要調(diào)整cv2.imshow顯示出來(lái)的窗口大小, 需要使用 cv2.namedWindow(‘窗口標(biāo)題’, 默認(rèn)參數(shù)) 參數(shù) cv2.imshow(‘窗口標(biāo)題’,image),如果前面沒(méi)有cv2.namedWindow,就自動(dòng)先執(zhí)行一個(gè)cv2.namedWindow() 窗口默認(rèn)cv2.WINDOW_AUTOSIZE namedWindow函數(shù)的作用是通過(guò)指定的名字,創(chuàng)建一個(gè)可以作為圖像和

    2024年02月16日
    瀏覽(92)
  • opencv導(dǎo)入圖片時(shí),cv2后面無(wú)法添加imread的問(wèn)題的解決方法

    opencv導(dǎo)入圖片時(shí),cv2后面無(wú)法添加imread的問(wèn)題的解決方法

    當(dāng)使用cv2導(dǎo)入圖片的時(shí)候,發(fā)現(xiàn)cv2.imread()被標(biāo)明高亮,無(wú)法使用imread,resize等方法 ?針對(duì)這個(gè)問(wèn)題,解決方法如下: 首先在我們的Python安裝路徑下面找到cv2(安裝anaconda的也是如此,找到相應(yīng)路徑), ? ?在這里可以看到一個(gè).pyd文件,將這個(gè)文件直接復(fù)制到site-packages路徑

    2024年02月11日
    瀏覽(24)
  • 2.ROS機(jī)器視覺(jué)——ROS圖像(imgmsg)與opencv(cv2)對(duì)接

    2.ROS機(jī)器視覺(jué)——ROS圖像(imgmsg)與opencv(cv2)對(duì)接

    參考: 古月學(xué)院和ROS機(jī)器人開(kāi)發(fā)實(shí)踐 目標(biāo) :實(shí)現(xiàn)ROS系統(tǒng)讀取攝像頭的圖像,ROS讀取的圖像數(shù)據(jù)轉(zhuǎn)化為opencv中的圖像,opencv對(duì)接受的圖像進(jìn)行處理,最后返回給ROS系統(tǒng)可視化輸出。 安裝opencv庫(kù)與相關(guān)的接口包 由于我用的ROS-Melodic版本,其中roscore只能在python2中執(zhí)行,而視覺(jué)部

    2024年02月16日
    瀏覽(15)
  • Opencv顯示圖片(MFC基于對(duì)話框窗口)

    Opencv顯示圖片(MFC基于對(duì)話框窗口)

    #1.編輯對(duì)話框按鈕,修改各個(gè)按鈕窗口ID和綁定變量 picture 控件 “打開(kāi)圖片”按鈕控件 #2.編寫顯示圖片函數(shù) void DrawMat(cv::Mat img, UINT nID); .h文件進(jìn)行聲明 .cpp進(jìn)行定義 #3.定義CString fun_LoadImg();函數(shù) .h文件進(jìn)行聲明 .cpp文件進(jìn)行定義 #4.雙擊“打開(kāi)圖片”按鈕 系統(tǒng)自動(dòng)彈出響應(yīng)函數(shù)

    2024年04月15日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包