i have an ultrasound image i want to remove the labeles on the image by using y=mx+b line to convert the pixeles above the line to black.how can i do it?
4 views (last 30 days)
Show older comments
filename = '181.png';
img= imread(filename);
gray = im2gray(img);
for i=1:434
for j=1:634
if(j < (0.77i+235))
img(i,j) = 255;
else
img(i,j)=0;
end
end
end
subplot(2,2,1), imshow(img),title('transformed image');
Accepted Answer
DGM
on 2 Feb 2023
There are a couple things going on here.
filename = '181.png';
img = imread(filename);
img = im2gray(img); % need to work on the right image
% use the actual image dimensions
[nrows,ncols,~] = size(img);
for row = 1:nrows
for col = 1:ncols
% image origin is NW corner, so a line which points from SW to NE
% actually has negative slope!
if row < (-0.77*col + 240)
img(row,col) = 128; % i'm using gray so it's easy to see
end
end
end
imshow(img)
This could also be done without the loops
filename = '181.png';
img = imread(filename);
img = im2gray(img); % need to work on the right image
[nrows,ncols,~] = size(img);
R = 1:nrows;
C = 1:ncols;
mask = R.' < (-0.77*C + 240);
img(mask) = 128;
imshow(img)
Alternatively, you could use a polygon mask to perform the selection. See drawpolygon() and createMask().
0 Comments
More Answers (0)
See Also
Categories
Find more on Convert Image Type in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
