オブジェクト画像を条件によって破棄する。
6 次查看(过去 30 天)
显示 更早的评论
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/765911/image.png)
左図のように細胞が複数いる画像を2値化した上で、オブジェクトごとに重心を求めて、その点を中心にトリミングを行いました。
しかし、右図の下のように画像の境界面に別の細胞が写り込んでしまっているため、これらの画像を破棄するプログラムを作りたいと考えています。何か良い案がございますでしょうか。
このページの手順5を参考に出来ないかと考えています。もしこれ以外でも良い案があればよろしくお願いします。
采纳的回答
Atsushi Ueno
2021-10-16
画像の上下左右端の画素値のORを取れば「二値化画像の境界に白い画素があるかどうか」判定できます。
any([BW(1,:) BW(end,:) BW(:,1)' BW(:,end)'])
I = imread('rice.png');
BW = imbinarize(I);
any([BW(1,:) BW(end,:) BW(:,1)' BW(:,end)'])
imshow(BW); % 二値化画像の境界に白い画素がある
BW = imclearborder(BW); % イメージ境界と連結している明るい構造を非表示にする
any([BW(1,:) BW(end,:) BW(:,1)' BW(:,end)'])
imshow(BW); % 二値化画像の境界に白い画素がない
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 グラフィックス オブジェクトのプログラミング 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!