1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波6 - 分段线性变换 - 比特平面分层

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波6 - 分段线性变换 - 比特平面分层

时间:2018-11-19 23:05:42

相关推荐

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波6 - 分段线性变换 - 比特平面分层

目录

比特平面分层

比特平面分层

在一幅256级灰度图像中,图像的值是由8比特(1字节)组成的

def convert_bin(data, n):"""convert decimal to binary, return n th bit, 0 if bit value 0 else 1"""#------------------numpy------------x = np.binary_repr(data, width=8)x = x[::-1]a = x[n]new_data = int(a)# -----------------self----------------#x = bin(data)[2:]#x = '0' * (8 - len(x)) + x#x = x[::-1]#a = x[n]#new_data = int(a)return new_data

def bit_seperate(img, func, n):new_img = np.zeros(img.shape, dtype=np.uint8)for i in range(img.shape[0]):for j in range(img.shape[1]):new_img[i, j] = func(img[i, j], n)return new_img

# 比特平面分层img = cv2.imread("./DIP_Figures/DIP3E_Original_Images_CH01/Fig0122(a)(fractal-iris).tif", 0)fig = plt.figure(figsize=(15, 12))for i in range(9, 0, -1):ax = fig.add_subplot(3, 3, (9-i)+1, xticks=[], yticks=[])if i == 9:ax.imshow(img, cmap='gray'), plt.title('Original')else:img_0 = bit_seperate(img, convert_bin, (i - 1))ax.imshow(img_0, cmap='gray')ax.set_title(f"{bin((i - 1))}")plt.tight_layout()plt.show()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。