Procesamiento de puntos en el procesamiento de imágenes usando Python-OpenCV

OpenCV es la enorme biblioteca de código abierto para visión por computadora, aprendizaje automático y procesamiento de imágenes y ahora juega un papel importante en la operación en tiempo real, lo cual es muy importante en los sistemas actuales. Al usarlo, uno puede procesar imágenes y videos para identificar objetos, rostros o incluso la escritura a mano de un ser humano.

Procesamiento de puntos en el dominio espacial

Todo el procesamiento realizado en los valores de píxel. Las operaciones de procesamiento de puntos toman la forma:

s = T ( r )

Aquí, T se denomina función de transformación de nivel de gris o una operación de procesamiento de puntos, s se refiere al valor de píxel de la imagen procesada y r se refiere al valor de píxel de la imagen original.

Imagen negativa:

s = (L-1) – r, where L= number of grey levels

Umbral:

s = L-1 for r > threshold
s = 0 for r < threshold

Corte de nivel de gris con fondo:

s = L-1 for a < r < b,
here a and b define some specific range of grey level
s = r otherwise.

A continuación se muestra la implementación.

Imagen de entrada original:

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 a 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 a 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)

Salida: imagen negativa

Salida: Imagen con Umbral:

Salida: imagen con corte de nivel de gris con fondo

Publicación traducida automáticamente

Artículo escrito por AmiMunshi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *