python處理圖片

# 引入cv庫
import cv2
import os
import numpy as np
#定義函數讀取圖片位置 提取數據 讀取數據

def rgb888_to_rgb565(r,g,b):
    r1 = (r >> 3) << 11
    g1 = (g >> 2) << 5
    b1 = (b >> 3)
    c = r1|g1|b1
    # 對調高低字節
    c_h = (c << 8)&0xFF00
    c_l = (c >> 8)&0x00FF
    return np.int16(c_h|c_l)

def get_rgb565_data(file):
    #分離文件和後綴
    p = os.path.splitext(file)
    file_name = p[0]+".bin"
    f = open(file_name,'wb')
    #IMREAD_UNCHANGED 讀取RGBA 不設置默認讀取RGB
    im = cv2.imread(file,cv2.IMREAD_UNCHANGED)
    h,w,ch = im.shape
    if (ch <= 2):
        print("pic_error")
        f.close()
        return
    print("h = "+str(h))
    print("w = " + str(w))
    print("ch = " + str(ch))
    for hh in range(0,h):
        for ww in range(0,w):
            b = im[hh][ww][0]
            g = im[hh][ww][1]
            r = im[hh][ww][2]
            c = rgb888_to_rgb565(r,g,b)
            f.write((c))
    f.close()

# 顯示目錄文件
addr = "./"
list = os.listdir(addr)
print(len(list))
if __name__ == "__main__":
    for i in range(0,len(list)):
        p = os.path.splitext(list[i])
        if (p[1] == ".bmp"):
            print(list[i]+'\n')
            get_rgb565_data(addr+list[i])



python處理圖片方便是方便,但是效率不如C。

打包py爲exe.

需要安裝pywin32 pyinstaller.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章