I = imread('coins.png');
level = graythresh(I);
BW = im2bw(I,level);
imshow(BW)
Die obige Abbildung ist ein Beispiel aus der MATLAB-Dokumentation, das ein Graustufenbild verwendet. Wie kann ich es mit einem indizierten Bild wie in diese Stelle ?
I = imread('coins.png');
level = graythresh(I);
BW = im2bw(I,level);
imshow(BW)
Die obige Abbildung ist ein Beispiel aus der MATLAB-Dokumentation, das ein Graustufenbild verwendet. Wie kann ich es mit einem indizierten Bild wie in diese Stelle ?
Sie können das indizierte Bild und seine Farbkarte zunächst in ein Graustufenbild umwandeln, indem Sie die Funktion IND2GRAU :
[X,map] = imread('SecCode.php.png'); %# Read the indexed image and colormap
grayImage = ind2gray(X,map); %# Convert to grayscale image
Dann können Sie den oben stehenden Code anwenden:
level = graythresh(grayImage); %# Compute threshold
bwImage = im2bw(grayImage,level); %# Create binary image
imshow(bwImage); %# Display image
EDIT:
Wenn Sie diesen Ansatz für jede Art von Bild verallgemeinern möchten, können Sie dies auf folgende Weise tun:
%# Read an image file:
[X,map] = imread('an_image_file.some_extension');
%# Check what type of image it is and convert to grayscale:
if ~isempty(map) %# It's an indexed image if map isn't empty
grayImage = ind2gray(X,map); %# Convert the indexed image to grayscale
elseif ndims(X) == 3 %# It's an RGB image if X is 3-D
grayImage = rgb2gray(X); %# Convert the RGB image to grayscale
else %# It's already a grayscale or binary image
grayImage = X;
end
%# Convert to a binary image (if necessary):
if islogical(grayImage) %# grayImage is already a binary image
bwImage = grayImage;
else
level = graythresh(grayImage); %# Compute threshold
bwImage = im2bw(grayImage,level); %# Create binary image
end
%# Display image:
imshow(bwImage);
Dies sollte Folgendes umfassen Die meisten Bildtypen, mit Ausnahme von einigen Ausreißern (wie alternative Farbräume für TIFF-Bilder ).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.