最近在做乙個專案,需要將base64轉成rgb格式。
一般的做法是將base64字串先解碼寫入檔案,然後再去cv2.imread讀取。這樣就繞彎了,如果能夠從base64直接轉為imread得到的rbg矩陣,就會節省時間開銷,具體做法比較簡單:
def base64_to_image(base64_code):
"""將base64的資料轉換成rgb格式的影象矩陣"""
img_data = base64.b64decode(base64_code)
img_array = np.fromstring(img_data, np.uint8)
img = cv2.imdecode(img_array, cv2.imread_color)
return img
傳入的base64字串,得到的是rgb格式的資料。
那反過來該怎麼做呢?
從rgb格式的影象矩陣到base64字串,需要進行下面轉換:
return image_code介紹完畢!
OpenCV使用BGR而非RGB格式
某文中作者在乙個大會上問了opencv的作者為什麼使用bgr格式而不是使用rgb。那麼這個歷史原因是什麼 早期開發者使用bgr作為顏色的空間的原因在於 那個時候的bgr格式在相機製造廠商和軟體提供商之間比較受歡迎。例如。在windows中,當使用 colorref 指定顏色值時,使用bgr格式0x0...
YUV格式轉換為RGB(基於opencv)
opencv自帶cvcvtcolor,但是這種方法有bug,得到的會泛白。第二種方法是公式法。法一 opencv自帶cvcvtcolor void filewriteframes readme.close cvreleaseimage uuimg cvreleaseimage vvimg cvrel...
YUV格式轉換為RGB(基於opencv)
opencv自帶cvcvtcolor,但是這種方法有bug,得到的會泛白。第二種方法是公式法。法一 opencv自帶cvcvtcolor 說明 這種方法會出現 泛白 具體原因網上是說cvcvtcolor這個函式左右協議不同,不太懂。cpp view plain copy print void fil...