python cv2圖像質(zhì)量壓縮的算法示例_第1頁
python cv2圖像質(zhì)量壓縮的算法示例_第2頁
python cv2圖像質(zhì)量壓縮的算法示例_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第pythoncv2圖像質(zhì)量壓縮的算法示例使用opencv對圖像進(jìn)行編碼,一方面是圖像二進(jìn)制傳輸?shù)男枰?,另一方面對圖像壓縮。以jpeg壓縮為例:

1、轉(zhuǎn)為二進(jìn)制編碼

img=cv2.imread(img_path)

#取值范圍:0~100,數(shù)值越小,壓縮比越高,圖片質(zhì)量損失越嚴(yán)重

params=[cv2.IMWRITE_JPEG_QUALITY,ratio]#ratio:0~100

msg=cv2.imencode(".jpg",img,params)[1]

msg=(np.array(msg)).tobytes()

print("msg:",len(msg))

對于png壓縮,改為:

#取值范圍:0~9,數(shù)值越小,壓縮比越低,圖片質(zhì)量越高

params=[cv2.IMWRITE_PNG_COMPRESSION,ratio]#ratio:0~9

msg=cv2.imencode(".png",img,params)[1]

msg=(np.array(msg)).tobytes()

對于圖像解碼,使用imdecode即可解為numpy類型圖像:

img=cv2.imdecode(np.frombuffer(msg,np.uint8),cv2.IMREAD_COLOR)

print(img.shape,type(img))

2、圖像質(zhì)量壓縮

原圖(48k):

jpg壓縮:

img_path=r"E:\img.jpg"

img=cv2.imread(img_path)

cv2.imwrite(r"E:\ret_80.jpg",img,[cv2.IMWRITE_JPEG_QUALITY,80])

cv2.imwrite(r"E:\ret_40.jpg",img,[cv2.IMWRITE_JPEG_QUALITY,40])

cv2.imwrite(r"E:\ret_10.jpg",img,[cv2.IMWRITE_JPEG_QUALITY,10])

cv2.imwrite(r"E:\ret_0.jpg",img,[cv2.IMWRITE_JPEG_QUALITY,0])

結(jié)果:

壓縮后圖像大小依次為:49.6K、25.6K、11K、5.02K。jpg壓縮明顯,壓縮到極致時(shí)顏色信息損失嚴(yán)重。

png壓縮:

img_path=r"E:\img.jpg"

img=cv2.imread(img_path)

cv2.imwrite(r"E:\ret_0.png",img,[cv2.IMWRITE_PNG_COMPRESSION,0])

cv2.imwrite(r"E:\ret_3.png",img,[cv2.IMWRITE_PNG_COMPRESSION,3])

cv2.imwrite(r"E:\ret_6.png",img,[cv2.IMWRITE_PNG_COMPRESSION,6])

cv2.imwrite(r"E:\ret_9.png",img,[cv2.IMWRITE_PNG_COMPRESSION,9])

結(jié)果:

壓縮后圖像大小依次為:675K、364K、364K、360K。png格式偏大,壓縮率調(diào)到最高也還有360K,且成像上無明顯變化。

PS:也可以對圖像壓縮后保存,如:

img_path=r"E:\img.jpg"

img=cv2.imread(img_path)

params=[cv2.IMWRITE_PNG_COMPRESSION,0]

msg=cv2.imencode(".png",img,params)[1]

msg=(np.array(msg)).tobytes()

print("msg:",len(msg))

img=cv2.imdecode(np.frombuffer(msg,np.uint8),cv2.IMREAD_COLOR)

cv2.imwrite(rr"E:\ret.jpg",img)

bug處理:

早期版本這樣寫:

msg=(np.array(msg)).tostring()

msg=(np.array(msg)).tobytes()

img=cv2.imdecode(np.fromstring(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論