是否有任何理由將圖像的通道順序從 RGB 更改為 BGR?

ImSo3K

我一直在關注這個 keras視頻分類教程,其中在數據準備部分,他們在load_video函數中加載視頻的幀非常一般,但引起我注意的是這一行:

frame = frame[:, :, [2, 1, 0]]

這是我第一次遇到這種情況,大多數情況下您只會將幀“按原樣”附加到您的幀列表中,但在這裡它們將通道的順序(如果我沒記錯的話)從 RGB 更改為BGR,我在網絡或他們的文檔中找不到任何與之相關的內容,有人能給我一些關於這個決定的見解嗎?

雷嶺

根據經驗,順序可以更改的原因取決於您用於加載圖像的框架。OpenCV 特別以 BGR 格式對通道進行排序,因為一些內部優化以這種方式利用格式。可以使用 scikit-image、matplotlib 和 Pillow 查看常規 RGB 格式的圖像。

實際上,如果您查看該load_video函數,它會使用 OpenCV 打開視頻,因此輸入的幀是 BGR 格式。因此,必須交換通道才能將其轉換為 RGB 格式:

def load_video(path, max_frames=0):
    cap = cv2.VideoCapture(path)
    frames = []
    try:
        while True:
            ret, frame = cap.read()
            if not ret:
                break
            frame = crop_center(frame)
            frame = frame[:, :, [2, 1, 0]]
            frames.append(frame)

            if len(frames) == max_frames:
                break
    finally:
        cap.release()
    return np.array(frames)

您當然不需要反轉通道,因為神經網絡會根據它提供的輸入數據進行學習,但人們傾向於這樣做,以便輕鬆調試圖像,而不必擔心不斷反轉通道展示。具體來說,如果神經網絡是按 BGR 排序訓練的,如果您以 RGB 格式加載圖像,則需要完成通道的反轉,因為這就是訓練中圖像通道的表示方式。總而言之,這取決於框架,但在訓練後使用神經網絡時需要牢記這一點。如果數據以 BGR 格式訓練,如果您的圖像以 RGB 格式讀取,則需要在推理之前反轉通道。

事實上,這是使用網絡時的常見錯誤!非常勤奮,並在使用之前了解圖像數據是如何為網絡進行預處理的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将RGB更改为BGR

滾動時將圖像動態更改為 rgb 和灰度

將 RGBA 圖像轉換為 RGB 圖像

Tensorflow:如何将张量的通道从RGB切换到BGR?

opencv BGR图像及其反向版本RGB图像[:,:,::-1]有什么区别?

快速将图像RGB转换为BGR

PIL旋转图像颜色(BGR-> RGB)

MTKTextureLoader弄乱了PNG RGB与BGR格式

将excel色彩BGR转换为RGB

我怎么知道图像是RGB还是BGR格式?

RGB2BGR选项从cvtColor中消失了

opencv cvSaveImage()以BGR格式保存RGB jpg图像

winapi-24bpp中的CreateDIBitmap在BGR中不是RGB

將圖片框的圖像從用戶控件更改為帶有圖像鏈接的表單

將灰度圖像轉換為 rgb 圖像並在 matlab 中用 imread() 替換它

是否可以从 MediaCodec 获取 BGR?

將鏽蝕圖像轉換為 rgb-pixel-array 並將其用作 OpenGL 紋理

更改现有颜色的RGB值?

加快像素格式转换-将BGR打包到RGB平面

Python OpenCV-imshow不需要从BGR转换为RGB

RGB转HSV和BGR转HSV一样吗?

如何在tensorflow.js中将RGB阵列反转为BGR阵列

获取类型错误:在将 bgr 转换为 rgb 时,参数 'src' 需要 cv::UMat

将十进制BGR颜色转换为单个RGB十进制值

cv2.cvtColor(img,cv2.COLOR_BGR2RGB) 不工作

通過 numpy 切片/步幅進行 OpenCV BGR2RGB 轉換

使用 Numpy / Opencv / scikit-image 更改 RGB 圖像像素值的最快方法是什麼

LittleCMS 库:在从 rgb (bgr) 到 cmyk 颜色的转换过程中我必须使用哪种类型的变量

将bgr转换为ycbcr并在opencv中分离通道