new_pixel = 0 for i in range(-1, 2): for j in range(-1, 2): if i == 0 or j == 0: members1.append(img[x + i, y + j]) # 중간값을찾는다. if (i != 0 and j != 0) or (i == 0 and j == 0): members2.append(img[x + i, y + j]) # 중간값을찾는다. members1.sort() members2.sort() members3 = [members1[2], members2[2], img[x, y]] members3.sort() new_pixel = members3[1] # print(int(new_pixel),end=' ') new_img.itemset(x, y, new_pixel) # print() return new_img if __name__ == '__main__': img = openimg.gray_imload('Lenna.png') noise = salt_pepper.salt_pepper(img) new_img = h_median(img) cv2.imshow('img', img) cv2.imshow('noise', noise) cv2.imshow('new_img', new_img) cv2.waitKey(0) cv2.destroyAllWindows()
import cv2 import numpy as np import openimg import immask def gaussian_smooth_mask(mode=0): mask = [[[1 / 16, 1 / 8, 1 / 16], [1 / 8, 1 / 4, 1 / 8], [1 / 16, 1 / 8, 1 / 16]], [[1 / 273, 4 / 273, 7 / 273, 4 / 273, 1 / 273], [4 / 273, 16 / 273, 26 / 273, 16 / 273, 4 / 273], [7 / 273, 26 / 273, 41 / 273, 26 / 273, 7 / 273], [4 / 273, 16 / 273, 26 / 273, 16 / 273, 4 / 273], [1 / 273, 4 / 273, 7 / 273, 4 / 273, 1 / 273]]] return mask[mode] if __name__ == '__main__': img = openimg.gray_imload('howell.jpg') new_img = immask.img_mask(img, gaussian_smooth_mask(1)) cv2.imshow('img', img) cv2.imshow('new_img', new_img) cv2.waitKey(0) cv2.destroyAllWindows()
G = np.zeros((row, col), dtype=np.complex) print(row, col) for l in range(row): print(l) for k in range(col): v = 0 for n in range(row): for m in range(col): v += img[n, m] * \ np.exp(-2j * np.pi * (m * k / row + n * l / col)) G[l, k] = v / (row * col) return G img = openimg.gray_imload("Lenna.png") f = np.fft.fft2(img) fshift = np.fft.fftshift(f) magnitude_spectrum1 = 20 * np.log(np.abs(f)) magnitude_spectrum2 = 20 * np.log(np.abs(fshift)) plt.subplot(131), plt.imshow(img, cmap='gray') plt.title('Input Image'), plt.xticks([]), plt.yticks([]) plt.subplot(132), plt.imshow(magnitude_spectrum1, cmap='gray') plt.title('fft'), plt.xticks([]), plt.yticks([]) plt.subplot(133), plt.imshow(magnitude_spectrum2, cmap='gray') plt.title('fft_suffle'), plt.xticks([]), plt.yticks([]) plt.show()
import cv2 import numpy as np import openimg import toBinary import 침식 import 팽창 img = toBinary.toBinary(openimg.gray_imload("Lenna.png")) new_img = 팽창.pangchang(침식.chimsick(img)) cv2.imshow("binary", img) cv2.imshow("mopology", new_img) cv2.waitKey(0) cv2.destroyAllWindows()