OpenCV is the huge open-source library for computer vision, machine learning, and image processing and now it plays a major role in real-time operation which is very important in today’s systems. By using it, one can process images and videos to identify objects, faces, or even the handwriting of a human.
Point processing in spatial domain
All the processing done on the pixel values. Point processing operations take the form –
s = T ( r )
Here, T is referred to as a grey level transformation function or a point processing operation, s refers to the processed image pixel value and r refers to the original image pixel value.
Image Negative:
s = (L-1) – r, where L= number of grey levels
Thresholding:
s = L-1 for r > threshold
s = 0 for r < threshold
Grey level slicing with background:
s = L-1 for a < r < b,
here a and b define some specific range of grey level
s = r otherwise.
Below is the implementation.
Original Input Image :
Python3
import cv2
import numpy as np
img = cv2.imread( 'food.jpeg' , 0 )
m,n = img.shape
L = img. max ()
img_neg = L - img
cv2.imwrite( 'Cameraman_Negative.png' , img_neg)
T = 150
img_thresh = np.zeros((m,n), dtype = int )
for i in range (m):
for j in range (n):
if img[i,j] < T:
img_thresh[i,j] = 0
else :
img_thresh[i,j] = 255
cv2.imwrite( 'Cameraman_Thresh.png' , img_thresh)
T1 = 100
T2 = 180
img_thresh_back = np.zeros((m,n), dtype = int )
for i in range (m):
for j in range (n):
if T1 < img[i,j] < T2:
img_thresh_back[i,j] = 255
else :
img_thresh_back[i,j] = img[i,j]
cv2.imwrite( 'Cameraman_Thresh_Back.png' , img_thresh_back)
|
Output :
Image Negative
Output :
Image with Thresholding :
Output :
Image with Grey Level Slicing with Background
