好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 快速解決cv2.imread()讀取圖像為BGR的問題

快速解決cv2.imread()讀取圖像為BGR的問題

熱門標簽:女王谷地圖標注 地圖標注推廣單頁 百應ai電銷機器人鄭州 廈門crm外呼系統如何 西藏快速地圖標注地點 如何在地圖標注文字 長春人工智能電銷機器人官網 n400電話申請多少錢 ai地圖標注

opencv讀取圖像為b,g,r方法,比如

img = cv2.imread("xx.jpg")
cv2.imshow("xx",img)

展示的結果是正常的:

但是此時讀取到的img已經為bgr方式了,如果我們再用其他使用rgb方式讀取的函數進行讀取時就會出錯,比如我用plt對圖像進行顯示,效果如下:

因為plt函數是rgb方式讀取的,所以會出錯。這時我們可以手動改變img的通道順序,如下:

b,g,r = cv2.split(img)
img_rgb = cv2.merge([r,g,b])
plt.figure()
plt.imshow(img_rgb)
plt.show()

這時img_rgb就是rgb順序的了.那么這時再用cv2.imshow()顯示出來,rgb錯誤:

補充:盤點踩過的關于cv2 和PIL 圖像讀取的一些小坑

1、首先像素讀取順序不同

PIL 讀取圖像時的像素順序是標準的RGB

from PIL import Image
img = Image.open("test.jpg")
print img.size
print img.getpixel((0,0))

輸出結果是

(533, 800)
(217, 229, 225)

cv2 讀取圖像時的像素順序是標準的BGR

img = cv2.imread(""test.jpg"")
print img.shape
print img[0][0]

輸出結果是

(800, 533, 3)
[225 229 217]

若要cv2讀取完圖像也是RGB格式,則按如下方法

img = cv2.imread(""test.jpg"")[..., ::-1]
print img.shape
print img[0][0]

輸出結果是

(800, 533, 3)
[217 229 225]

和用PIL 讀取完的一致

2、cv2 圖像讀取方法的參數解釋

首先我們先來看一下這個函數的定義

def imread(filename, flags=None)

filename

參數傳入的是圖像路徑,支持解析的圖像格式基本上覆蓋全了

- Windows bitmaps - \*.bmp, \*.dib (always supported)
- JPEG files - \*.jpeg, \*.jpg, \*.jpe (see the *Note* section)
- JPEG 2000 files - \*.jp2 (see the *Note* section)
- Portable Network Graphics - \*.png (see the *Note* section)
- WebP - \*.webp (see the *Note* section)
- Portable image format - \*.pbm, \*.pgm, \*.ppm \*.pxm, \*.pnm (always supported)
- Sun rasters - \*.sr, \*.ras (always supported)
- TIFF files - \*.tiff, \*.tif (see the *Note* section)
- OpenEXR Image files - \*.exr (see the *Note* section)
- Radiance HDR - \*.hdr, \*.pic (always supported)
- Raster and Vector geospatial data supported by GDAL (see the *Note* section)

flags

@param flags Flag that can take values of cv::ImreadModes

Flags指定了所讀取圖片的顏色類型, 默認值為1

對應值為 -1 到 4

參數 Value
IMREAD_UNCHANGED If set, return the loaded image as is (with alpha channel, otherwise it gets cropped).
IMREAD_GRAYSCALE If set, always convert image to the single channel grayscale image.
IMREAD_COLOR If set, always convert image to the 3 channel BGR color image.
IMREAD_ANYDEPTH If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.
IMREAD_ANYCOLOR If set, the image is read in any possible color format.
IMREAD_LOAD_GDAL If set, use the gdal driver for loading the image.
參數 Value
flag=-1時 8位深度,原通道
flag=0 8位深度,1通道
flag=1 8位深度 ,3通道
flag=2 原深度,1通道
flag=3 原深度,3通道
flag=4 8位深度 ,3通道

IMREAD_UNCHANGED :不進行轉化,比如保存為了16位的圖片,讀取出來仍然為16位。

IMREAD_GRAYSCALE :進行轉化為灰度圖,比如保存為了16位的圖片,讀取出來為8位,類型為CV_8UC1。

IMREAD_COLOR :進行轉化為三通道圖像。

IMREAD_ANYDEPTH :如果圖像深度為16位則讀出為16位,32位則讀出為32位,其余的轉化為8位。

IMREAD_ANYCOLOR

IMREAD_LOAD_GDAL :使用GDAL驅動讀取文件,GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數據轉換和處理。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • opencv-python的RGB與BGR互轉方式
  • 解決python cv2.imread 讀取中文路徑的圖片返回為None的問題
  • Python實現計算圖像RGB均值方式

標簽:綿陽 廊坊 黔東 內江 渭南 興安盟 亳州 拉薩

巨人網絡通訊聲明:本文標題《快速解決cv2.imread()讀取圖像為BGR的問題》,本文關鍵詞  快速,解決,cv2.imread,讀取,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《快速解決cv2.imread()讀取圖像為BGR的問題》相關的同類信息!
  • 本頁收集關于快速解決cv2.imread()讀取圖像為BGR的問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 秘?羞羞视频观看免费版| 美女把腿扒开让男人桶爽了| 腐文h| 精品人妻无码一区二区三区绿| 国产好爽又高潮了毛片日本| 精品日本一区二区| 处女黄色片| 女人被狂躁60分钟视频| 四虎激情| 成A人无码AV无码免费专区人妻| 将界丁思聪与雷蕾片段| 95免费视频在线观看| 国产成人欧美日韩在线电影| 火辣辣福利污APP导航| 中文字幕精品无码亚洲字幕乐视| 艳妇野欲| 语文老师穿旗袍方便c汽车配件| 成人黄色一级片| 2021最新韩国理论三级ok| 国产女人久久久毛片一级毛片| 91精品中文字幕一区二区三区| 双性受含着睡了一夜h| 国产精品秘?入口69| 菲律宾电影巜偷欢人妻| 美女的隐私直播免费软件| wwwxxx免费| 扶住李青萝翘臀挺进去小说| 色网站在线免费观看| 玉足交| caoporon永久在线视频| 欧美酷刑sM调教室捆绑| 麻豆最新地址| 男生被男生到爽动漫| 黑人精品videossex黑人| 又粗又大又黄A片免费看久久久| 你那个太大了弄得好爽| 欧美一级黄色大片| 啊啊舒服| 模特A片一区二区三区| 国产一级a爱做片免费看| 国内精品久久影视|