Open In App

Point Processing in Image Processing using Python-OpenCV

Improve
Improve
Like Article
Like
Save
Share
Report

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
 
  
# Image negative
img = cv2.imread('food.jpeg',0)
 
# To ascertain total numbers of
# rows and columns of the image,
# size of the image
m,n = img.shape
  
# To find the maximum grey level
# value in the image
L = img.max()
  
# Maximum grey level value  minus
# the original image gives the
# negative image
img_neg = L-img
  
# convert the np array img_neg to
# a png image
cv2.imwrite('Cameraman_Negative.png', img_neg)
  
# Thresholding without background
# Let threshold =T
# Let pixel value in the original be denoted by r
# Let pixel value in the new image be denoted by s
# If r<T, s= 0
# If r>T, s=255
  
T = 150
 
# create an array of zeros
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
  
  
# Convert array to png image
cv2.imwrite('Cameraman_Thresh.png', img_thresh)
  
# the lower threshold value
T1 = 100
 
# the upper threshold value
T2 = 180
 
# create an array of zeros
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]
 
# Convert array to  png image
cv2.imwrite('Cameraman_Thresh_Back.png', img_thresh_back)


Output : 

Image Negative

  

Output : 

Image with Thresholding :

  

Output : 

Image with Grey Level Slicing with Background

 



Last Updated : 17 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads