clear an area in binary image
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi guys,
I need to clear area in a binary image.
I only need the center part of a binary image, for example, only the center 100x100 image out of 1000x1000 image.
I know there is an easy way, prob just 1-2 line of code.
please show me your talent.
good day
C
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 14 Aug. 2011
W = 100; %window size
img((end-W)/2+1:(end+W)/2, (end-W)/2+1:(end+W)/2) = 0;
Note: this will not work if your window size is even and your image size is odd, or if your window size is odd and your image size is even: in such cases, "center" is not well-defined.
4 Kommentare
Walter Roberson
am 15 Aug. 2011
W = 400;
if islogical(img)
t = false(size(img));
else
t = zeros(size(img),class(img));
end
t((x-W)/2+1:(x+W)/2,(y-W)/2+1:(y+W)/2) = img((x-W)/2+1:(x+W)/2,(y-W)/2+1:(y+W)/2));
Note: there are variations of the above that may be a bit clearer or shorter if you can guarantee that the img will not be of type "logical" and will not be of type "int64" or "uint64", or if you can guarantee that the code will only be used in R2011A or later.
Weitere Antworten (1)
bym
am 14 Aug. 2011
img=rand(1000)<.5; % some data
img(451:550,451:550); % center 100x100
2 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!