Professional Documents
Culture Documents
img= cv2.imread('anh2.jpeg',0)
cv2.imshow('NgoAnhDuc',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Bài 2: Phép biến đổi âm bản ảnh
Code trên Visual
import cv2 as cv
def ambananh(img):
def chuyenambananh():
img = cv.imread('anh3.jpg',0)
i = ambananh(img)
cv.imshow('NgoAnhDuc',i)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == '__main__':
chuyenambananh()
Bài 3: Biến đổi dạng hàm log
Code:
import cv2 as cv
def show_Chuyen_doi_logarit():
img1 = cv.imread('anh1.png',0)
ax1.imshow(img1, cmap='gray')
ax1.set_title("Ảnh gốc")
img2 = cv.imread('anh2.jpeg',0)
ax3.imshow(img2, cmap='gray')
img3 = cv.imread('anh3.jpg',0)
ax5.imshow(img3, cmap='gray')
y1 = Chuyen_doi_logarit(img1, 2)
ax2.imshow(y1, cmap='gray')
y2 = Chuyen_doi_logarit(img2, 2)
ax4.imshow(y2, cmap='gray')
y3 = Chuyen_doi_logarit(img3, 2)
ax6.imshow(y3, cmap='gray')
plt.show()
if __name__ == '__main__':
show_Chuyen_doi_logarit()
Bài 4: Hàm mũ
Code:
import cv2 as cv
def show_Chuyen_Doi_Gamma():
img = cv.imread('anh3.jpg',0)
ax1.imshow(img, cmap='gray')
ax1.set_title("ảnh gốc")
ax2.set_title("gamma=0.5")
plt.show()
if __name__ == '__main__':
show_Chuyen_Doi_Gamma()
Bài 7: Cắt theo mặt phẳng bit
Code:
import numpy as np
import cv2
plt.rcParams['font.size'] = 10
img = cv2.imread('anh1.png',0)
lst = []
for i in range(img.shape[0]):
for j in range(img.shape[1]):
# Để tạo ra các mặt phẳng bit chúng ta lặp qua các phần tử chuỗi các bit
# Rút trích nó là lưu vào từng danh sách (mỗi danh sách là mặt phẳng bit)
mp_bit_8 =[]
for i in lst:
mp_bit_8.append(int(i[0]))
mp_bit_7 =[]
for i in lst:
mp_bit_7.append(int(i[1]))
mp_bit_6 =[]
for i in lst:
mp_bit_6.append(int(i[2]))
#Rút trích thành mặt phẳng bit thứ 5
mp_bit_5 =[]
for i in lst:
mp_bit_5.append(int(i[3]))
mp_bit_4 =[]
for i in lst:
mp_bit_4.append(int(i[4]))
mp_bit_3 =[]
for i in lst:
mp_bit_3.append(int(i[5]))
mp_bit_2 =[]
for i in lst:
mp_bit_2.append(int(i[6]))
mp_bit_1 =[]
for i in lst:
mp_bit_1.append(int(i[7]))
# Nhân từng phần tử với 2^(n-1) để có ảnh tái tạo tương ứng với mỗi mặt
phẳng bit
# n là bit thứ n
image_bit_8 =
(np.array(mp_bit_8,dtype='uint8')*128).reshape(img.shape[0],img.shape[1])
image_bit_7 =
(np.array(mp_bit_7,dtype='uint8')*64).reshape(img.shape[0],img.shape[1])
image_bit_6 =
(np.array(mp_bit_6,dtype='uint8')*32).reshape(img.shape[0],img.shape[1])
image_bit_5 =
(np.array(mp_bit_5,dtype='uint8')*16).reshape(img.shape[0],img.shape[1])
image_bit_4 =
(np.array(mp_bit_4,dtype='uint8')*8).reshape(img.shape[0],img.shape[1])
image_bit_3 =
(np.array(mp_bit_3,dtype='uint8')*4).reshape(img.shape[0],img.shape[1])
image_bit_2 =
(np.array(mp_bit_2,dtype='uint8')*2).reshape(img.shape[0],img.shape[1])
image_bit_1 =
(np.array(mp_bit_1,dtype='uint8')*1).reshape(img.shape[0],img.shape[1])
ax1.imshow(img, cmap='gray')
ax1.set_title("ảnh gốc")
ax2.imshow(image_bit_8, cmap='gray')
ax3.imshow(image_bit_7, cmap='gray')
ax4.imshow(image_bit_6, cmap='gray')
ax5.imshow(image_bit_5, cmap='gray')
ax6.imshow(image_bit_4, cmap='gray')
ax7.imshow(image_bit_3, cmap='gray')
ax8.imshow(image_bit_2, cmap='gray')
ax9.imshow(image_bit_1, cmap='gray')
# Tái tạo ảnh từ việc kết hợp nhiều mặt phẳng bit
bx1.imshow(img, cmap='gray')
bx1.set_title("ảnh gốc")