이미지 처리의 히스토그램 평활화

이미지 향상 기술입니다.
이미지에 존재하는 다양한 계조의 발생 빈도를 나타냅니다.
시끄럽거나 어두운 이미지에서 시각적으로 만족스러운 결과를 생성합니다.

입력 이미지[2^8비트 이미지]:


출력 이미지:


import matplotlib.pyplot as plt
import cv2
import seaborn as sns
import numpy as np
img=cv2.imread("/Users/ruthvikrajam.v/Desktop/X-ray.jpg",0)
# Importing a greyscale image in 2D so 0 is passed as a parameter
plt.imshow(img, cmap='gray') # Displaying an opencv image using matplotlib
plt.hist(img,bins=20) # Plotting an Histogram for the Input Image
sns.distplot(img)  # Plotting KDE of an image, the intensity values are not equally distributed 
x=img.flatten() # The Flatten Image command merges all of the layers of the image into a single layer with no alpha channel 
hist, bins= np.histogram(x,256,[0,256]) # 256 is no of bins, [0,256] means range which sets lower and upper range of bins
# Basically here we are finding the frequency of each grey level image from 0 to 255 and storing the result in hist
pdf=hist/(hist.sum())# Finding the Probability Distribution Function of the input image
cdf=pdf.cumsum() # Finding the Cumulative distribution of all the intensity values in an ascending order[0-255]
cdf_normalized= cdf*255 # Now we have to multiply each value with maximum intensity value of an input image
# Here we can do any other operation also but I have chosen to multiply with the maximum intensity value of an input image
rounded=np.round(cdf_normalized) # since digital image consists of discrete intensity values, rounding off to the nearest intensity value
img1=cv2.imread("/Users/ruthvikrajam.v/Desktop/X-ray.jpg",0)
row,col=img1.shape
for i in range(0,row):   # row= 312 # col= 256
    for j in range(0,col):
             new=img1[i][j];
             img1[i][j]=rounded[new];
# Here we are replacing the actual intensity value of each pixel with the rounded intensity value
plt.imshow(img1,cmap="gray") # Modified image
sns.distplot(img) 
sns.distplot(img1)             
# Compare the KDE for original and modified image


히스토그램 평준화를 수행한 후에도 균일한 분포를 볼 수 없는 이유는 무엇입니까?
답변: (1) 히스토그램 균등화는 PDF를 가능한 한 균일하게 만드는 동시에 이미지의 원래 속성을 존중하며 (2) 연속 CDF 값을 이산 CDF 값으로 변환합니다. 불연속 강도 값만 포함합니다.
이것은 결과적으로 완벽하게 균일한 히스토그램을 얻지 못하는 또 다른 이유이기도 합니다.

좋은 웹페이지 즐겨찾기