2016-12-28 8 views
0

で行を検出:私の目標は、この.FORこの画像内の全ての精子を数えることであるこんにちは、私はこの画像上の作業持っているイメージMATLAB

example image containing sperm

を、私はこれだけの行を検出すると思っていますそれは私の仕事を楽にします。私は初心者なので、このステップで私は完全に失われていますどのアルゴリズムが私が行を検出するのを助けることができますか? (私はハフ変換とスキャンラインアルゴリズムがあることを見てきました)どのアルゴリズムが私を助けることができるか、他のものがあるかどうかはわかりません

+1

"空の"サークルもカウントするか、完全なものだけをカウントしますか? – Itay

+0

私は完全なものを数えたい –

+0

私は精子の検出に関するいくつかの論文を読んだが、私は何を探しているのかわからない –

答えて

0

ここには始めるのに役立つコードがあります。 イメージを見ると、直線を見ることで精子をラベル付けするのが非常に難しいようです。したがって、ハフ変換を使用すると多くの助けにならないでしょう。 以下の例では、画像のフィルタリングとブロブの数のカウントに焦点を当てました。コードはコメントであり、理解しやすいはずです。

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 
+0

あなたの助けをたくさんありがとうNino Pereira –

+0

私はあなたのコードに基づいて、欲しい結果 –

関連する問題