91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現opencv-python的RGB與BGR的互轉

發布時間:2020-07-20 11:47:19 來源:億速云 閱讀:969 作者:小豬 欄目:開發技術

小編這次要給大家分享的是如何實現opencv-python的RGB與BGR的互轉,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

一、格式轉換

opencv讀取圖片的默認像素排列是BGR,需要轉換。PIL庫是RGB格式。

caffe底層的圖像處理是基于opencv,其使用的顏色通道順序與也是BGR(Blue-Green-Red),而日常圖片存儲時顏色通道順序是RGB。

在Python中,將RGB順序的圖像轉成BGR順序,需要調整channel dimension的各顏色通道順序。

方法1:

img = cv2.imread("001.jpg")

img_ = img[:,:,::-1].transpose((2,0,1))

① 在opencv里,圖格式HWC,其余都是CHW,故transpose((2,0,1))

② img[:,:,::-1]對應H、W、C,彩圖是3通道,即C是3層。opencv里對應BGR,故通過C通道的 ::-1 就是把BGR轉為RGB

注: [::-1] 代表順序相反操作

③ 若不涉及C通道的BGR轉RGB,如Img[:,:,0]代表B通道,也就是藍色分量圖像;Img[:,:,1]代表G通道,也就是綠色分量圖像;Img[:,:,2]代表R通道,也就是紅色分量圖像。

方法2:

使用opencv自帶函數轉換圖像的R通道和B通道。

RGB -> BGR

img_bgr = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2BGR)

BGR->RGB

img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)

方法3:

BRG轉RGB

rgb = bgr[...,::-1]

RGB轉BGR

bgr = rgb[...,::-1]

RGB轉GBR

gbr = rgb[...,[2,0,1]]

二、其他

添加Batch項一般是caffe2圖像預處理的最后一步,在經過RGB->BGR,圖像增強以及HWC->CHW后,還需要在CHW前添加一個第四維N以記錄圖像樣本數量(即batchsize),所以輸入caffe的圖像格式為(N,C,H,W),其中顏色通道C的順序是BGR。

但是對于TensorFlow這個順序有差別。TensorFlow有兩種數據格式NHWC和NCHW,默認的數據格式是NHWC,可以通過參數data_format指定數據格式。設置為 “NHWC” 時,排列順序為 [batch, height, width, channels];設置為 “NCHW” 時,排列順序為 [batch, channels, height, width]。

兩種數據格式的轉換:

NHWC –> NCHW:

import tensorflow as tf
x = tf.reshape(tf.range(24), [1, 3, 4, 2])
out = tf.transpose(x, [0, 3, 1, 2])

NCHW –> NHWC:

import tensorflow as tf
x = tf.reshape(tf.range(24), [1, 2, 3, 4])
out = tf.transpose(x, [0, 2, 3, 1])

補充知識:淺談opencv使用BGR而非RGB的原因

使用opencv讀取圖片時, 默認的通道順序是BGR而非RGB,在RGB為主流的當下, 這種默認給我們帶來了一點不便。那么, opencv 為什么要使用BGR而非RGB呢?

目前看到的一種解釋說是因為歷史原因:早期BGR也比較流行,opencv一開始選擇了BGR,到后來即使RGB成為主流,但也不好改了。

看完這篇關于如何實現opencv-python的RGB與BGR的互轉的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弋阳县| 顺平县| 湖北省| 宿松县| 台中县| 天气| 鄂尔多斯市| 肥城市| 沾化县| 乌拉特后旗| 洱源县| 孝感市| 顺义区| 福贡县| 汤原县| 教育| 龙江县| 开平市| 唐山市| 伊川县| 湟源县| 东城区| 开化县| 青阳县| 监利县| 闽清县| 崇义县| 祁门县| 岱山县| 榆社县| 应用必备| 九龙城区| 报价| 钟山县| 尤溪县| 凌海市| 永清县| 丽江市| 新余市| 肇源县| 桂林市|