removing the pixels with different size and unregular shape
3 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone
I want to delete some pixels in my binary image and keep some others. I have tried but the solutions like defining structuring element did not work.
I would be grateful if you could help me or share your ideas about the possible solutions.
The image and a screenshot with the marked wanting pixels is attached
0 件のコメント
採用された回答
Image Analyst
2022 年 7 月 27 日
Out of all the blobs in the image, why those specific 3? What's different about those 3 blobs? Will they always be there? If so just use bwselect or simply mask out those pixels with some known template. If they change shape, size, and location then it might be better to just improve your segmentation algorithm so that they don't get created in the first place.
5 件のコメント
Image Analyst
2022 年 7 月 27 日
Then bwselect is what you want. You can specify a row and column and a binary image and it will extract blobs that are true at that location. Then you can use that to erase it from the binary image. Let's say you want to delete the blob that has a white pixel at row 30 and column 100. You could do
blobToErase = bwselect(binaryImage, 100, 30); % One single blob.
binaryImage(blobToErase) = false; % Remove that blob from the image.
その他の回答 (1 件)
Chunru
2022 年 7 月 27 日
A simple approach is to find the regions you want to deleted (assign 0). Four your question, rectangle regions are sufficient:
I = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1078370/image.jpg');
subplot(121); imshow(I);
xline([60 220 1180 1380], 'r')
yline([1050 1380 1940 2300], 'r')
I(1050:1380, 60:220) = 0;
I(1940:2300, 1180:1380)=0;
subplot(122); imshow(I)
xline([60 220 1180 1380], 'r')
yline([1050 1380 1940 2300], 'r')
% mode(I(:))
参考
カテゴリ
Help Center および File Exchange で Image Processing Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!