DIP Lab Assignments
DIP Lab Assignments
im = plt.imread('cameraman.tif')
plt.imshow(im)
plt.title('Original Image')
plt.show()
im_d = im.astype(float)
c0 = np.mod(im_d, 2)
plt.imshow(c0)
plt.title('Zero bit Image')
plt.show()
c1 = np.mod(np.floor(im_d/2), 2)
plt.imshow(c1)
plt.title('First bit Image')
plt.show()
c2 = np.mod(np.floor(im_d/4), 2)
plt.imshow(c2)
plt.title('Second bit Image')
plt.show()
c3 = np.mod(np.floor(im_d/8), 2)
plt.imshow(c3)
plt.title('Third bit Image')
plt.show()
c4 = np.mod(np.floor(im_d/16), 2)
plt.imshow(c4)
plt.title('Fourth bit Image')
plt.show()
c5 = np.mod(np.floor(im_d/32), 2)
plt.imshow(c5)
plt.title('Fifth bit Image')
plt.show()
c6 = np.mod(np.floor(im_d/64), 2)
plt.imshow(c6)
plt.title('Sixth bit Image')
plt.show()
c7 = np.mod(np.floor(im_d/128), 2)
plt.imshow(c7)
plt.title('Seventh bit Image')
plt.show()
cc = 2*(2*(2*(2*(2*(2*(2*c7+c6)+c5)+c4)+c3)+c2)+c1)+c0
plt.imshow(cc.astype(np.uint8))
plt.title('Reconstructed Original Image')
plt.show()
2. Write a program to demonstrate down sampling.
import cv2
import matplotlib.pyplot as plt
im = cv2.imread('pout.tif', 0)
plt.imshow(im, cmap='gray')
plt.title('Original image')
plt.show()
im_h = cv2.equalizeHist(im)
plt.imshow(im_h, cmap='gray')
plt.title('Histogram equalized image')
plt.show()
import cv2
import numpy as np
import matplotlib.pyplot as plt
I = cv2.imread('cameraman.tif', cv2.IMREAD_GRAYSCALE)
plt.subplot(2,2,1)
plt.imshow(I, cmap='gray')
plt.title('Original Image')
H = np.zeros((20, 20))
H[10, :] = 1
H = H / np.sum(H)
MotionBlur = cv2.filter2D(I, -1, H, borderType=cv2.BORDER_REPLICATE)
plt.subplot(2,2,2)
plt.imshow(MotionBlur, cmap='gray')
plt.title('Motion Blurred Image')
plt.show()
4. Write a program to demonstrate histogram equalization.
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fftshift, fft2
from PIL import Image
a = np.zeros((256, 256))
a[78:178, 78:178] = 1
plt.imshow(a), plt.title('Image with a square')
plt.show()
af = fftshift(fft2(a))
plt.imshow(np.log(1 + np.abs(af))), plt.title('Fourier transform of square image')
plt.show()
bf = fftshift(fft2(b))
plt.imshow(np.log(1 + np.abs(bf))), plt.title('Fourier transform of rotated square
image')
plt.show()
cf = fftshift(fft2(c))
plt.imshow(np.log(1 + np.abs(cf))), plt.title('Fourier transform of Cameraman
image')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fftshift, fft2, ifft2
cm = plt.imread('cameraman.tif')
plt.imshow(cm)
plt.title('Input image')
plt.show()
cf = fftshift(fft2(cm))
plt.imshow(np.log(1 + np.abs(cf)))
plt.title('Fourier transform of input image')
plt.show()
cfli = ifft2(cfl)
plt.imshow(np.abs(cfli))
plt.title('Image smoothing using ideal lowpass filter')
plt.show()
cfhi = ifft2(cfh)
plt.imshow(np.abs(cfhi))
plt.title('Image sharpening using ideal highpass filter')
plt.show()
6. Write a program to generate Fourier transform of an image.
# Perform dilation
td = cv2.dilate(t, sq, iterations=1)
# Perform erosion
ce = cv2.erode(t, sq, iterations=1)
im = cv2.imread('rice.png', 0)
r = cv2.threshold(im, 127, 255, cv2.THRESH_BINARY)[1]
sq = np.ones((3,3), np.uint8)
re = cv2.erode(r, sq)
r_int = cv2.bitwise_and(r, cv2.bitwise_not(re))
plt.show()
10. Write a program to demonstrate dilation and erosion.