で行を検出:私の目標は、この.FORこの画像内の全ての精子を数えることであるこんにちは、私はこの画像上の作業持っているイメージMATLAB
を、私はこれだけの行を検出すると思っていますそれは私の仕事を楽にします。私は初心者なので、このステップで私は完全に失われていますどのアルゴリズムが私が行を検出するのを助けることができますか? (私はハフ変換とスキャンラインアルゴリズムがあることを見てきました)どのアルゴリズムが私を助けることができるか、他のものがあるかどうかはわかりません
で行を検出:私の目標は、この.FORこの画像内の全ての精子を数えることであるこんにちは、私はこの画像上の作業持っているイメージMATLAB
を、私はこれだけの行を検出すると思っていますそれは私の仕事を楽にします。私は初心者なので、このステップで私は完全に失われていますどのアルゴリズムが私が行を検出するのを助けることができますか? (私はハフ変換とスキャンラインアルゴリズムがあることを見てきました)どのアルゴリズムが私を助けることができるか、他のものがあるかどうかはわかりません
ここには始めるのに役立つコードがあります。 イメージを見ると、直線を見ることで精子をラベル付けするのが非常に難しいようです。したがって、ハフ変換を使用すると多くの助けにならないでしょう。 以下の例では、画像のフィルタリングとブロブの数のカウントに焦点を当てました。コードはコメントであり、理解しやすいはずです。
img = imread('d9S3Z.png');
figure, imshow(img)
% convert to binary image
[X,map] = rgb2ind(img,0.0);
img = ind2gray(X,map); % Convert indexed to grayscale
level = graythresh(img); % Compute an appropriate threshold
% or use your own, e.g. level = 0.46
img_bw = im2bw(img,level);% Convert grayscale to binary
% create mask to remove edge interference
mask = zeros(size(img_bw));
mask(2:end-2,2:end-2) = 1;
img_bw(mask<1) = 1;
%invert image
img_inv =1-img_bw;
% find blobs
img_blobs = bwmorph(img_inv,'majority',10);
figure, imshow(img_blobs);
% count blobs
CC = bwconncomp(img_blobs);
num_sperm = CC.NumObjects # sperm count
あなたの助けをたくさんありがとうNino Pereira –
私はあなたのコードに基づいて、欲しい結果 –
"空の"サークルもカウントするか、完全なものだけをカウントしますか? – Itay
私は完全なものを数えたい –
私は精子の検出に関するいくつかの論文を読んだが、私は何を探しているのかわからない –