Ich versuche, einige Statiken von einigen Bildern zu bekommen, und wenn ich versuchte, Histogrammentzerrung durchzuführen, werde ich verwirrt.Histogrammausgleich skimage
Weil ich diese tryed:
img = io.imread(file);
img = exposure.equalize_hist(img);
Und ich bekomme die Warnung warn("This might be a color image. The histogram will be "
Dann tryed ich die Entzerrung in jedem Kanal wie folgt auszuführen:
img = io.imread(file);
#img = exposure.equalize_hist(img);
height, width = len(img), len(img[0]);
r1 = [];
g1 = [];
b1 = [];
for i in range(height):
for j in range(width):
pixel = img[i, j];
r1.append(pixel[0]);
g1.append(pixel[1]);
b1.append(pixel[2]);
r = exposure.equalize_hist(r1);
g = exposure.equalize_hist(g1);
b = exposure.equalize_hist(b1);
Und ich bekomme die Fehler
AttributeError: 'list' object has no attribute 'shape'
Also wie soll ich Histogrammentzerrung in einem Bild mit Farbe tun, und wenn ich es in einem Bild in HSV oder CIELAB tun möchte, ist es die gleiche Weise ?! histogram equalization
Ich glaube, ich habe aber jetzt habe ich seltsame Werte auf img, bevor sie auf img [0] Ich hatte [[179 138 172] [179 136 164] ..., [168 105 134] [173 112 143]] und jetzt habe ich alle Nullen: [[0 0 0] [0 0 0] [0 0 0] ..., [0 0 0] [0 0 0] [0 0 0]]. Ist es richtig? – Nathan
Vielleicht wäre es am besten, in HSV zu konvertieren und auf dem V-Kanal zu arbeiten. Außerdem sind Neuskalierungsintensitäten oft besser zum Erhalten von Daten als eine Histogrammentzerrung. –