Resolución espacial (muestreo descendente y muestreo ascendente) en el procesamiento de imágenes

Una imagen digital es una array bidimensional de tamaño M x N , donde M es el número de filas y N es el número de columnas de la array. Una imagen digital se compone de un número finito de elementos de imagen discretos llamados píxeles. La ubicación de cada píxel viene dada por las coordenadas (x, y) y el valor de cada píxel viene dado por el valor de intensidad f . Por tanto, los elementos de una imagen digital se pueden representar mediante f(x, y). 

Resolucion espacial

El término resolución espacial corresponde al número total de píxeles en la imagen dada. Si el número de píxeles es mayor, entonces la resolución de la imagen es mayor.

muestreo descendente

En la técnica de muestreo descendente, el número de píxeles en la imagen dada se reduce dependiendo de la frecuencia de muestreo. Debido a esto, la resolución y el tamaño de la imagen disminuyen.

Muestreo ascendente

El número de píxeles en la imagen submuestreada se puede aumentar utilizando técnicas de interpolación de muestreo ascendente. La técnica de muestreo ascendente aumenta la resolución y el tamaño de la imagen.

Algunas técnicas de muestreo ascendente comúnmente utilizadas son

  • Interpolación del vecino más cercano
  • Interpolación bilineal
  • interpolación cúbica

En este artículo, implementamos el muestreo superior mediante la interpolación del vecino más cercano mediante la replicación de filas y columnas. A medida que aumenta la frecuencia de muestreo, se verán artefactos en la imagen reconstruida. 

Sin embargo, al utilizar la interpolación bilineal o la interpolación cúbica, se puede lograr una mejor calidad de la imagen reconstruida. Tanto el muestreo descendente como el muestreo ascendente se pueden ilustrar en escala de grises para una mejor comprensión porque, al leer imágenes con OpenCV , se manipulan algunos valores de color, por lo que vamos a convertir la imagen de entrada original en una imagen en blanco y negro.

El siguiente programa muestra la representación muestreada hacia abajo y muestreada hacia arriba de una imagen dada:

Python3

# Import cv2, matplotlib, numpy
import cv2
import matplotlib.pyplot as plt
import numpy as np
 
 
# Read the original image and know its type
img1 = cv2.imread('g4g.png', 0)
 
# Obtain the size of the original image
[m, n] = img1.shape
print('Image Shape:', m, n)
 
# Show original image
print('Original Image:')
plt.imshow(img1, cmap="gray")
 
 
# Down sampling
 
# Assign a down sampling rate
# Here we are down sampling the
# image by 4
f = 4
 
# Create a matrix of all zeros for
# downsampled values
img2 = np.zeros((m//f, n//f), dtype=np.int)
 
# Assign the down sampled values from the original
# image according to the down sampling frequency.
# For example, if the down sampling rate f=2, take
# pixel values from alternate rows and columns
# and assign them in the matrix created above
for i in range(0, m, f):
    for j in range(0, n, f):
        try:
 
            img2[i//f][j//f] = img1[i][j]
        except IndexError:
            pass
 
 
# Show down sampled image
print('Down Sampled Image:')
plt.imshow(img2, cmap="gray")
 
 
# Up sampling
 
# Create matrix of zeros to store the upsampled image
img3 = np.zeros((m, n), dtype=np.int)
# new size
for i in range(0, m-1, f):
    for j in range(0, n-1, f):
        img3[i, j] = img2[i//f][j//f]
 
# Nearest neighbour interpolation-Replication
# Replicating rows
 
for i in range(1, m-(f-1), f):
    for j in range(0, n-(f-1)):
        img3[i:i+(f-1), j] = img3[i-1, j]
 
# Replicating columns
for i in range(0, m-1):
    for j in range(1, n-1, f):
        img3[i, j:j+(f-1)] = img3[i, j-1]
 
# Plot the up sampled image
print('Up Sampled Image:')
plt.imshow(img3, cmap="gray")

Aporte:

Producción:

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 *