import cv2
import numpy as np
from matplotlib import pyplot as plt
class PDI():
def __init__(self, img_name):
self.image = img_name
def q1(self):
img = cv2.imread(self.image)
arr = np.array(img)
for i in range(len(arr)):
for j in range(len(arr[i])):
for k in range(len(arr1[i][j])):
if arr[i][j][k] >= 127:
arr[i][j][k] = 255
else:
arr[i][j][k] = 0
cv2.imwrite('test.jpg', arr)
def q2(self, c=1):
img = cv2.read(self.image)
arr = np.array(img)
for i in range(len(arr)):
for j in range(len(arr[i])):
for k in range(len(arr[i][j])):
arr[i][j][k] = c*np.log10(arr[i][j][k] + 1)
cv2.imwrite('test.jpg', arr)
def q3(self, c=1):
img = cv2.imread(self.image)
arr = np.array(img)
for i in range(len(arr)):
for j in range(len(arr[i])):
for k in range(len(arr[i][j])):
arr[i][j][k] = c * (arr[i][j][k] ** gama)
cv2.imwrite('test.jpg')
def q4(self, plane):
h, w = self.image.shape
new_image = self.image.copy()
for i in range(0,h):
for j in range(0,w):
bin_number = '{0:08b}'.format(image[i,j])
if int(bin_number[7 - plane]) == 1:
new_image[i,j] = 255
else:
new_image[i,j] = 0
return new_image