OpenCv图像处理——位平面分解

图像的位平面分解一般分为5个步骤:

1.图片预处理

2.构造提取矩阵

3.提取位平面

4.阈值处理

5.显示图像

以灰度图像的位平面分解为例,代码如下:

import cv2 
import numpy as np

demo = cv2.imread("demo.jpg", 0)
cv2.imshow("demo", demo)
r, c = demo.shape                          # 图像预处理
x = np.zeros((r, c, 8), dtype=np.uint8)    # 构造提取矩阵
for i in range(8):
    x[:,:,i] = 2**i
#print(x)

w = np.zeros((r, c, 8), dtype=np.uint8)
#print(r)

for i in range(8):
    w[:,:,i] = cv2.bitwise_and(demo, x[:,:,i]) # 提取位平面
    mask = w[:,:,i]>0                          # 阈值处理
    w[mask] = 255
    cv2.imshow(str(i), w[:,:,i])               # 显示图片
cv2.waitKey()
cv2.destroyAllWindows()

        

          

            

从图中可以看出左上角位原图,从上至下从左至右依次对应为第0-7个位平面,第0个位平面显示原图信息的效果最差权值最低,第7个权值最高。通常情况下第0层能量最低,在显示图像的时候作用最小,可以选择该层制作数字水印保存秘密信息。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值