Skip to content

Commit ab445a3

Browse files
authored
Add files via upload
1 parent 8d3cee8 commit ab445a3

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# -*- coding: utf-8 -*-
2+
# BY:Eastmount CSDN 2021-08-20
3+
import cv2
4+
import numpy as np
5+
import matplotlib.pyplot as plt
6+
7+
#读取原始图像
8+
img = cv2.imread('lena-hd.png')
9+
10+
#获取图像高度和宽度
11+
height = img.shape[0]
12+
width = img.shape[1]
13+
14+
#创建一幅图像
15+
new_img1 = np.zeros((height, width, 3), np.uint8)
16+
new_img2 = np.zeros((height, width, 3), np.uint8)
17+
new_img3 = np.zeros((height, width, 3), np.uint8)
18+
19+
#图像量化等级为2的量化处理
20+
for i in range(height):
21+
for j in range(width):
22+
for k in range(3): #对应BGR三分量
23+
if img[i, j][k] < 128:
24+
gray = 0
25+
else:
26+
gray = 128
27+
new_img1[i, j][k] = np.uint8(gray)
28+
29+
#图像量化等级为4的量化处理
30+
for i in range(height):
31+
for j in range(width):
32+
for k in range(3): #对应BGR三分量
33+
if img[i, j][k] < 64:
34+
gray = 0
35+
elif img[i, j][k] < 128:
36+
gray = 64
37+
elif img[i, j][k] < 192:
38+
gray = 128
39+
else:
40+
gray = 192
41+
new_img2[i, j][k] = np.uint8(gray)
42+
43+
#图像量化等级为8的量化处理
44+
for i in range(height):
45+
for j in range(width):
46+
for k in range(3): #对应BGR三分量
47+
if img[i, j][k] < 32:
48+
gray = 0
49+
elif img[i, j][k] < 64:
50+
gray = 32
51+
elif img[i, j][k] < 96:
52+
gray = 64
53+
elif img[i, j][k] < 128:
54+
gray = 96
55+
elif img[i, j][k] < 160:
56+
gray = 128
57+
elif img[i, j][k] < 192:
58+
gray = 160
59+
elif img[i, j][k] < 224:
60+
gray = 192
61+
else:
62+
gray = 224
63+
new_img3[i, j][k] = np.uint8(gray)
64+
65+
#用来正常显示中文标签
66+
plt.rcParams['font.sans-serif']=['SimHei']
67+
68+
#显示图像
69+
titles = ['(a) 原始图像', '(b) 量化-L2', '(c) 量化-L4', '(d) 量化-L8']
70+
images = [img, new_img1, new_img2, new_img3]
71+
for i in range(4):
72+
plt.subplot(2,2,i+1), plt.imshow(images[i], 'gray'),
73+
plt.title(titles[i])
74+
plt.xticks([]),plt.yticks([])
75+
plt.show()

0 commit comments

Comments
 (0)