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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

發(fā)布時(shí)間:2024/3/24 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OpenCV 例程300篇】01. 图像的读取(cv2.imread) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

專欄地址:『youcans 的 OpenCV 例程300篇 - 總目錄』
01. 圖像的讀取(cv2.imread)
02. 圖像的保存(cv2.imwrite)
03. 圖像的顯示(cv2.imshow)
04. 用 matplotlib 顯示圖像(plt.imshow)


【OpenCV 例程300篇】001. 圖像的讀取(cv2.imread)


函數(shù) cv2.imread() 用于從指定的文件讀取圖像。

函數(shù)說明:

retval = cv.imread(filename[, flags])

  • 函數(shù) cv2.imread() 從指定文件加載圖像并返回該圖像的矩陣。
  • 如果無法讀取圖像(文件丟失,權(quán)限不正確,格式不支持或無效),該函數(shù)返回一個(gè)空矩陣。
  • 目前支持的文件格式:
    • Windows 位圖 - * .bmp,* .dib
    • JPEG 文件 - * .jpeg,* .jpg,*.jpe
    • JPEG 2000文件 - * .jp2
    • 便攜式網(wǎng)絡(luò)圖形 - * .png
    • WebP - * .webp
    • 便攜式圖像格式 - * .pbm,* .pgm,* .ppm * .pxm,* .pnm
    • TIFF 文件 - * .tiff,* .tif

參數(shù)說明:

  • filename:讀取圖像的文件路徑和文件名
  • flags:讀取圖片的方式,可選項(xiàng)
    • cv2.IMREAD_COLOR(1):始終將圖像轉(zhuǎn)換為 3 通道BGR彩色圖像,默認(rèn)方式
    • cv2.IMREAD_GRAYSCALE(0):始終將圖像轉(zhuǎn)換為單通道灰度圖像
    • cv2.IMREAD_UNCHANGED(-1):按原樣返回加載的圖像(使用Alpha通道)
    • cv2.IMREAD_ANYDEPTH(2):在輸入具有相應(yīng)深度時(shí)返回16位/ 32位圖像,否則將其轉(zhuǎn)換為8位
    • cv2.IMREAD_ANYCOLOR(4):以任何可能的顏色格式讀取圖像
  • 返回值 retval:讀取的 OpenCV 圖像,nparray 多維數(shù)組

注意事項(xiàng):

  • OpenCV 讀取圖像文件,返回值是一個(gè)nparray 多維數(shù)組。OpenCV 對圖像的任何操作,本質(zhì)上就是對 Numpy 多維數(shù)組的運(yùn)算。
  • OpenCV 中彩色圖像使用 BGR 格式,而 PIL、PyQt、matplotlib 等庫使用的是 RGB 格式。
  • cv2.imread() 如果無法從指定文件讀取圖像,并不會報(bào)錯(cuò),而是數(shù)返回一個(gè)空矩陣。
  • cv2.imread() 指定圖片的存儲路徑和文件名,在 python3 中不支持中文和空格(但并不會報(bào)錯(cuò))。必須使用中文時(shí),可以使用 cv2.imdecode() 處理,參見擴(kuò)展例程。
  • cv2.imread() 讀取圖像時(shí)默認(rèn)忽略透明通道,但可以使用 CV_LOAD_IMAGE_UNCHANGED 參數(shù)讀取透明通道。
  • 對于彩色圖像,可以使用 flags=0 按照讀取為灰度圖像。
  • 基本例程:

    # 1.1 圖像的讀取imgFile = "../images/imgLena.tif" # 讀取文件的路徑img1 = cv2.imread(imgFile, flags=1) # flags=1 讀取彩色圖像(BGR)img2 = cv2.imread(imgFile, flags=0) # flags=0 讀取為灰度圖像

    擴(kuò)展例程:

    # 1.2 從網(wǎng)絡(luò)讀取圖像import urllib.request as requestresponse = request.urlopen("https://profile.csdnimg.cn/8/E/F/0_youcans")imgUrl = cv2.imdecode(np.array(bytearray(response.read()), dtype=np.uint8), -1) # 1.3 讀取中文路徑的圖像imgFile = "../images/測試圖01.png" # 帶有中文的文件路徑和文件名# imread() 不支持中文路徑和文件名,讀取失敗,但不會報(bào)錯(cuò)!# img = cv2.imread(imgFile, flags=1)# 使用 imdecode 可以讀取帶有中文的文件路徑和文件名img = cv2.imdecode(np.fromfile(imgFile, dtype=np.uint8), -1)


    (本節(jié)完)


    版權(quán)聲明:
    youcans@xupt 原創(chuàng)作品,轉(zhuǎn)載必須標(biāo)注原文鏈接:(https://blog.csdn.net/youcans/article/details/121168935)
    Copyright 2022 youcans, XUPT
    Crated:2021-11-18
    更多內(nèi)容請見:>『youcans 的 OpenCV 例程300篇 - 總目錄』(https://blog.csdn.net/youcans/article/details/125112487)

    總結(jié)

    以上是生活随笔為你收集整理的【OpenCV 例程300篇】01. 图像的读取(cv2.imread)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。