opencv讀取圖像為b,g,r方法,比如
img=cv2.imread("xx.jpg")cv2.imshow("xx",img)
因為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 圖像讀取的一些小坑
PIL 讀取圖像時的像素順序是標準的RGB
fromPILimportImageimg=Image.open("test.jpg")printimg.sizeprintimg.getpixel((0,0))
輸出結果是
(533,800)(217,229,225)
cv2 讀取圖像時的像素順序是標準的BGR
img=cv2.imread(""test.jpg"")printimg.shapeprintimg[0][0]
輸出結果是
(800,533,3)[225229217]
若要cv2讀取完圖像也是RGB格式,則按如下方法
img=cv2.imread(""test.jpg"")[...,::-1]printimg.shapeprintimg[0][0]
輸出結果是
(800,533,3)[217229225]
和用PIL 讀取完的一致
首先我們先來看一下這個函數的定義
defimread(filename,flags=None)
filename
參數傳入的是圖像路徑,支持解析的圖像格式基本上覆蓋全了
-Windowsbitmaps-\*.bmp,\*.dib(alwayssupported)-JPEGfiles-\*.jpeg,\*.jpg,\*.jpe(seethe*Note*section)-JPEG2000files-\*.jp2(seethe*Note*section)-PortableNetworkGraphics-\*.png(seethe*Note*section)-WebP-\*.webp(seethe*Note*section)-Portableimageformat-\*.pbm,\*.pgm,\*.ppm\*.pxm,\*.pnm(alwayssupported)-Sunrasters-\*.sr,\*.ras(alwayssupported)-TIFFfiles-\*.tiff,\*.tif(seethe*Note*section)-OpenEXRImagefiles-\*.exr(seethe*Note*section)-RadianceHDR-\*.hdr,\*.pic(alwayssupported)-RasterandVectorgeospatialdatasupportedbyGDAL(seethe*Note*section)
flags
@paramflagsFlagthatcantakevaluesofcv::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許可協議下的開源柵格空間數據轉換庫。它利用抽象數據模型來表達所支持的各種文件格式。它還有一系列命令行工具來進行數據轉換和處理。
關于如何使用cv2.imread()讀取BGR圖像就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
微信怎么看年度賬單?微信年度賬單還是比較容易查看的,使用者可以在微信首頁直接搜索【微信記賬本】,進入微信記賬本小程序以后,一鍵同步授權并更新微信支付數據;然后可以在該小程序中找到【收支統計功能】,用戶就可按日、月查看支出賬單了。此外,想要查詢微信年度賬單的朋友還可以登錄微信,在微信首頁找到【我】—【支付】—【錢包】,然后點擊錢包頁面右上角的【賬單】即可按月份查看微信的每一筆...
什么是基金支付牌照?《基金支付許可證》是央行頒發給第三方支付企業的基金銷售支付結算業務許可證。支付牌照功能基金銷售機構可以選擇商業銀行或者支付機構從事基金銷售支付結算業務。投資者通過直銷方式認購和購買基金時,可以使用有牌照的第三方支付工具代替銀行支付資金。對于客戶來說,最直接的好處就是較低的認購折扣和認購費率。銀聯、銀聯電子、支付寶、財付通、快錢都獲得了基金支付的牌照?;鹬Ц杜普帐侨绾紊暾埖?基...
支付寶關聯賬號怎么弄?有什么用?一、支付寶關聯賬號怎么弄?1、首先登陸已經實名認證的支付寶。2、然后點擊賬戶設置,在賬戶設置里面的查看實名認證。3、然后就會跳轉到另一個對話框,選擇下面的添加關聯賬戶。4、輸入關聯的支付寶賬戶名和密碼,還有本賬戶的密碼和身份證號碼。5、輸入之后確定就成功了。二、有什么用?1、關聯賬戶就是用一個通過了實名認證的支付寶賬戶關聯一個未通過認證的賬戶,跟賬戶的新舊無關。關聯...