How to draw a line that separate white pixels in percentages on a image

조회 수: 7 (최근 30일)
Rohit Thokala
Rohit Thokala 2022년 2월 9일
편집: DGM 2022년 2월 9일
I want to draw a vertcal line that can seperate white pixels in the image with the percentages as shown in the figure. I can't use regionprops since each white pixel information is important to me. I have attached binary image for reference. Thanks in advance.

채택된 답변

DGM
DGM 2022년 2월 9일
편집: DGM 2022년 2월 9일
Something like this should work:
A = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/888330/binaryimage1.jpg');
A = rgb2gray(A)>128;
lhsfrac = 0.95;
% find the transition point
Aprof = cumsum(sum(A,1));
breakpoint = find(Aprof >= Aprof(end)*lhsfrac,1,'first')
breakpoint = 191
% plot the profile for sake of clarity
figure(1)
plot(Aprof); hold on
plot([0 numel(Aprof)],[1 1]*Aprof(end)*lhsfrac,':')
% show the image and plot a line over it
figure(2)
imshow(A); hold on
plot([1 1]*breakpoint,[0 size(A,1)])
% if you want to actually embed the line in the image
figure(3)
B = im2uint8(repmat(A,[1 1 3]));
B(:,breakpoint,:) = repmat(permute([1 0.2 0.8]*255,[1 3 2]),[size(A,1) 1 1]);
imshow(B);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Data Workflows에 대해 자세히 알아보기

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by