opencv中rgb格式資料和base64資料轉換

2021-08-29 23:06:41 字數 675 閱讀 8616

最近在做乙個專案,需要將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...