Почему результаты регулируемого квадратичного картирования фильтра Volterra не усиливают темные/яркие области, как в бумPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Почему результаты регулируемого квадратичного картирования фильтра Volterra не усиливают темные/яркие области, как в бум

Сообщение Гость »

На основе этой статьи регулируемые квадратичные фильтры для улучшения изображения Рейнхард Бернштейн, Майкл Мур и Санджит Митра, 1997, я пытаюсь воспроизвести результаты улучшения изображения. Я выполнял описанные шаги, включая реализацию нелинейных функций отображения (например, F_MAP_2 = X^2) и применение 2D Teager-подобного квадратичного фильтра Volterra, как указано. Формула (53) и формулы двух функций отображения используются, как показано на изображении ниже.

pipe wip -normation is rangerize the aremine is articize wit hip hipe wip wip wip wip wip hipeaize with wip -naterizize rangerize rangebize aremine rangebize aremine. 1], затем отобразите его, используя предопределенные функции (в частности, определение F_MAP_2 и F_MAP_5, пожалуйста, смотрите на изображении), затем пропустите его через фильтр Teager (который является формулой (53)), умножьте его на коэффициент альфа и объединить исходное изображение для заострения (UNSHARP MASTING), наконец, денорм на диапазон [0, 255]. class = "lang-py prettyprint-override">import cv2
import numpy as np
from numpy import sqrt
import matplotlib.pyplot as plt

def normalize(img):
return img.astype(np.float32)/255.0

def denormalize(img):
"""Convert image to [0, 255]"""
return (img * 255).clip(0, 255).astype(np.uint8)

def input_mapping(x, map_type='none', m=2):
"""Apply input mapping function according to the paper"""
if map_type == 'none':
return x # none (4b)
elif map_type == 'map2':
return x**2 # f_map2: x^2 (4c)
elif map_type == 'map5':
# piece-wise function f_map5 (4d)
mapped = np.zeros_like(x)
mask = x > 0.5
mapped[mask] = 1 - 2*(1 - x[mask])**2
mapped[~mask] = 2 * x[~mask]**2
return mapped
else:
raise ValueError("Invalid mapping type")

def teager_filter(img):
padded = np.pad(img, 1, mode='reflect')
out = np.zeros_like(img)
for i in range(1, padded.shape[0]-1):
for j in range(1, padded.shape[1]-1):
x = padded[i,j]
t1 = 3*(x**2)
t2 = -0.5*padded[i+1,j+1]*padded[i-1,j-1]
t3 = -0.5*padded[i+1,j-1]*padded[i-1,j+1]
t4 = -1.0*padded[i+1,j]*padded[i-1,j]
t5 = -1.0*padded[i,j+1]*padded[i,j-1]
out[i-1,j-1] = t1 + t2 + t3 + t4 + t5
return out

def enhance_image(image_path, alpha, map_type='none'):
"""Enhance images with optional input mapping"""
# Image reading and normalization
img = cv2.imread(image_path, 0)
if img is None:
raise FileNotFoundError("No image found!")
img_norm = normalize(img)

# Input mapping
mapped_img = input_mapping(img_norm, map_type)

# Teager filter
teager_output = teager_filter(mapped_img)

enhanced = np.clip(img_norm + alpha * teager_output, 0, 1)

return denormalize(enhanced)

input_path = r"C:\Users\tt\OneDrive\Desktop\original_image.jpg"
original_image = cv2.imread(input_path, 0)
alpha = 0.1

enhanced_b = enhance_image(input_path, alpha, map_type='none')
enhanced_c = enhance_image(input_path, alpha, map_type='map2')
enhanced_d = enhance_image(input_path, alpha, map_type='map5')

plt.figure(figsize=(15, 5))

plt.subplot(1, 4, 1)
plt.imshow(original_image, cmap='gray')
plt.title('Original')
plt.axis('off')

plt.subplot(1, 4, 2)
plt.imshow(enhanced_b, cmap='gray')
plt.title('No Mapping (b)')
plt.axis('off')

plt.subplot(1, 4, 3)
plt.imshow(enhanced_c, cmap='gray')
plt.title('Map2 (c)')
plt.axis('off')

plt.subplot(1, 4, 4)
plt.imshow(enhanced_d, cmap='gray')
plt.title('Map5 (d)')
plt.axis('off')

plt.tight_layout()
plt.show()

< /code>
Однако мои выходные изображения из использования сопоставлений, таких как F_MAP_2 и F_MAP_5, не похожи на те, показанные в статье (в частности, изображения (C) и (d) ниже). Вместо сильного усиления в ярких и темных областях, результаты в основном показывают слегка затемненные края практически без контраста в целевых областях.
Так что это мои результаты:
и Papers '/p> и Papers'/P./P./P.t. Результаты:
< /p>
Может быть, это полезно, так что я также опубликую картину необработанного вывода вышеупомянутого чайерного фильтра, без умножения на Alpha и добавление к первоначальному изображению, как ниже


Подробнее здесь: https://stackoverflow.com/questions/796 ... nhance-dar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»