数字图像处理 - 比特平面分层 的python实现
生活随笔
收集整理的這篇文章主要介紹了
数字图像处理 - 比特平面分层 的python实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文主要介紹對《數字圖像處理》第三章 比特平面分層 的介紹 p70
對于8位256灰度級圖像來說,如果它的每個灰度值用二進制表示,選擇將這8個數字用8個字節來表示,如32的二進制表示是00100000,將其儲存為[0 0 1 0 0 0 0 0],則其二維圖像可以理解為一個8層的三維圖像,每一層代表一個比特平面
對比每個比特平面可以發現,高階平面(如1所在第六比特平面)儲存的信息比低階平面的多。
下圖顯示了dollar的8比特平面圖,依次分別是原圖和比特平面8~1
下面是它的python代碼實現(基于opencv)
import cv2 import numpy as np import matplotlib.pyplot as plt#更改為需要的圖片路徑 img = cv2.imread(r'C:\Users\xxx\Desktop\dollar.tif',0) h,w = img.shape[0],img.shape[1]#處理過程 new_img = np.zeros((h,w,8)) for i in range(h):for j in range(w):n = str(np.binary_repr(img[i,j],8)) for k in range(8):new_img[i,j,k] = n[k]#依次顯示 for i in range(8):cv2.imshow('image',new_img[:,:,i])cv2.waitKey(0)第八比特平面
第七比特平面
第六比特平面
第五比特平面
第四比特平面
第三比特平面
第二比特平面
第一比特平面
重構是使用第n個平面的像素值乘以常數 2^(n-1)
用128乘以比特平面8,用64乘以比特平面7,然后將這兩個平面相加,原圖的主要特征便被復原了。
下圖是使用幾個高階平面重建的圖像
若要獲取更多數字圖像處理,python,深度學習,機器學習,計算機視覺等高清PDF以及 更多有意思的 分享,可搜一搜 微信公共號 “分享猿” 免費獲取資源。也可掃描下面的二維碼關注,期待你的到來~
總結
以上是生活随笔為你收集整理的数字图像处理 - 比特平面分层 的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员准备跳槽了,如何选择下一家IT公司
- 下一篇: python 获取各pkg版本_Pyth