Я использовал выравнивание гистограмм и приспособление для стирания освещения из полутоновых изображений:Почему после выравнивания гистограммы (изображение scikit) и метода Otsu mahotas в некоторых изображениях выходят большие белые квадраты?
import scipy
import numpy as np
import pymorph as pm
import mahotas as mh
from skimage import morphology
from skimage import io
from matplotlib import pyplot as plt
from skimage import data, img_as_float
from skimage import exposure
mhgray = io.imread(path)
mhgray = mhgray[:,:,0]
#thresh = mh.otsu(binimg)
#gray =(binimg< thresh)
img = color.rgb2gray(mhgray)
#img = mhgray #binimg
#from skimage import exposure
#print dir(exposure)
# Contrast stretching
p2 = np.percentile(img, 2)
p98 = np.percentile(img, 98)
#img_rescale = exposure.rescale_intensity(img, in_range=(p2, p98))
img_rescale = exposure.rescale_intensity(img, out_range=(0, 255))
# Equalization
img_eq = exposure.equalize_hist(img)
# Adaptive Equalization
img_adapteq = exposure.equalize_adapthist(img, clip_limit=0.03)
но после histogram equalization, я использую OTSU метод:
thresh = mh.otsu(binimg)
gray =(binimg< thresh)
значение Thresh для следующего примера является: 16329
Источник изображения:
После выравнивания гистограммы и адаптации:
После метода Otsu:
Изображение, прежде чем Оцу является массивом uint16, после того, как Оцу является NumPy массив BOOL ,
В stackoverflow я предложил использовать выравнивание гистограммы, чтобы избежать проблем с освещением.
Это для серого фона? Как я могу это исправить?
Пожалуйста, предоставьте копию входного изображения. –
К сожалению: изображение источника: http://i.imgur.com/7AEJTuA.jpg – postgres
другое изображение: http://i.imgur.com/drhsyfL.jpg, и результат: http://i.imgur.com /21tKYJv.png – postgres