為什么OpenCV存儲(chǔ)的圖像格式是BGR呢? 做圖像處理的我們應(yīng)該都知道,OpenCV是我們必備的一個(gè)工具,我們?cè)谑褂肙penCV讀取圖像時(shí)你應(yīng)該也發(fā)現(xiàn)了讀取出來的數(shù)組居然是BGR格式,而不是我們聽的最多,用的最多的RGB格式,這是為什么呢?有同學(xué)思考過這個(gè)問題嗎? 作者/編輯 湯興旺 我們用OpenCV和PIL讀取下面一張圖片,對(duì)比看下結(jié)果: OpenCV讀取圖片: import cv2 filename="/home/tangxingwang/01.jpeg" img = cv2.imread(filename) print(img) PIL:讀取圖片: import numpy as np from PIL import Image filename="/home/tangxingwang/01.jpeg" img=Image.open(filename) img_arr=np.array(img) print(img_arr) 從上面我們的對(duì)比我們明顯就看出OpenCV讀取圖片的格式和PIL不一樣,OpenCV是BGR格式,PIL是RGB格式,為什么? 解答:OpenCV在1999年由Intel建立,當(dāng)時(shí)主流的攝像頭制造商和軟件供應(yīng)商提供的攝像頭采集的圖像的通道排列順序?yàn)锽GR,另外對(duì)于圖片,位圖BMP是最簡(jiǎn)單的,也是Windows顯示圖片的基本格式,其文件擴(kuò)展名為*.BMP。在Windows下,任何格式的圖片文件(包括視頻播放)都要轉(zhuǎn)化為位圖才能顯示出來,各種格式的圖片文件也都是在位圖格式的基礎(chǔ)上采用不同的壓縮算法生成的,值得注意的是位圖BMP的格式就是BGR。正是基于BGR在當(dāng)時(shí)被廣泛使用,于是早期OpenCV開發(fā)者就選擇BGR顏色格式,這也就成為了一種規(guī)范一直用到現(xiàn)在。 今天的問題就到這里了,不知道是否解決了您心中的困惑呢?另外如果您在學(xué)習(xí)深度學(xué)習(xí)過程中遇到不懂且有趣的問題歡迎留言,說不定下一問就解答您的問題呢? 轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系 侵權(quán)必究 |
|