首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >图像位平面分解

图像位平面分解

作者头像
裴来凡
发布2022-05-28 16:40:40
发布2022-05-28 16:40:40
8420
举报
代码语言:javascript
复制
import cv2
import numpy as np
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png',0)#原始图像
cv2.imshow("img",img)
r,c=img.shape#图像的行和列
x=np.zeros((r,c,8),dtype=np.uint8)#图像的行
r=np.zeros((r,c,8),dtype=np.uint8)#图像的列
for i in range(8):
    x[:,:,i]=2**i
    for i in range(8):
        r[:,:,i]=cv2.bitwise_and(img,x[:,:,i])#按与位运算
        mask=r[:,:,i]>0
        r[mask]=255
        cv2.imshow(str(i),r[:,:,i])
cv2.waitKey()
cv2.destroyAllWindows()

算法:位平面分解图像是将灰度图像中处于同一比特位上的二进制像素值进行组合,得到一幅二进制值图像,该图像被称为灰度图像的一个位平面。

例子:

在8位灰度图中,每一个像素使用8位二进制值来表示,其值的范围在[0,255]之间。

对应的二进制值:

十进制209-二进制1101 0001

8个位平面分解:

1101 0001-1000 1011

其中的值表示为:value=a7×2^7+a6×2^6+a5×2^5+a4×2^4+a3×2^3+a2×2^2+a1×2^1+a0×2^0

每次提取位平面后,要想让二值位平面能够以黑白颜色显示出来,就要将得到的二值位平面进行阈值处理,将其中大于零的值处理为255。

注意:第0个位平面,第0个位平面位于8位二进制值的最低位,其权重最低,对像素值的影响最小,所以一般显示出来的是一幅杂乱无章的图像。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档