필터 지우기
필터 지우기

removing border pixels in a binary image

조회 수: 1 (최근 30일)
Apoorva Maiya
Apoorva Maiya 2020년 5월 13일
답변: Apoorva Maiya 2020년 5월 17일
Hello all, below is a binary image
i want to remove the border pixels as shown in red (i used paint to highlight ) in the below image
I cannot use imclearborder for this task as it eliminates any pixel attactched to the border too. So i was thinking we could write a loop and set the first and last white oixel in each row to zero. I am not quite sure how to write the loop. Can anyone help me with this problem?
  댓글 수: 9
Apoorva Maiya
Apoorva Maiya 2020년 5월 15일
hey, below is the same image after skeletonization
I have managed to get the rightmost and leftmost white pixel in each row with the following code:
B = bwskel(img);
[rows,col]=size(B);
rightEdgeColumn = zeros(1,rows);
leftEdgeColumn=zeros(1,rows);
for row=1:rows
col1 = find(B(row, :), 1, 'last');
col2 = find(B(row, :), 1, 'first');
if ~isempty(col1) && ~isempty(col2)
rightEdgeColumn(row) = col1;
leftEdgeColumn(row) = col2;
end
end
Can anybody help me set those pixels to zero? I want the pixels in rightEdgeColumn and LeftEdgeColumn to be zero. Thank you in advance.
Apoorva Maiya
Apoorva Maiya 2020년 5월 17일
thank you all for your response, i was able to write the code myself.

댓글을 달려면 로그인하십시오.

채택된 답변

Apoorva Maiya
Apoorva Maiya 2020년 5월 17일
B = bwskel(img); %skeletonized image
[rows,col]=size(B);
%% finding right edge and left edge
rightEdgeColumn = zeros(1,rows);
leftEdgeColumn=zeros(1,rows);
for row=1:rows
col1 = find(B(row, :), 1, 'last');
col2 = find(B(row, :), 1, 'first');
if ~isempty(col1) && ~isempty(col2)
rightEdgeColumn(row) = col1;
leftEdgeColumn(row) = col2;
end
end
%%removing the edge pixels
for i=1:length(rightEdgeColumn)
k=rightEdgeColumn(i);
if k==0 %% if the whole row has no white pixels
B(i,:)=0;
else
B(i,k)=0;
end
end

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by