1

私はmatlabが初めてで、画像にしきい値を設定したいと考えています。癌には特定の彩度があるため、どの紫の細胞が癌であるかを区別するために、紫色の細胞の彩度を見つけたいのですが、その 方法がわかりません。これが私のコードです。if 部分には決して行きません!! これらのコードでは赤チャンネルを使用していますが、それは間違っていると思います! さらに、セグメンテーション パーツが実行され、紫色のセルがセグメント化されます。私が必要とする唯一のものは、良いしきい値です。私を案内してください..ありがとうここにコードがあります:

imshow(segmented_images{2})
hsvImage = rgb2hsv(segmented_images{2});
%%segmented_images{2} is a segmented image
Rchannel = hsvImage(:,:,1);
Rchannel=int8(Rchannel);

if Rchannel > 2736*3765

 message = sprintf('it is a cancer image');
    reply = questdlg(message, 'Continue with Demo?', 'OK','cancel', 'OK');
    if strcmpi(reply, 'cancel')
        % User canceled so exit.
        return;
    end
end

 [1]: http://i.stack.imgur.com/jn2X9.jpg

ここに画像の説明を入力

4

2 に答える 2

0

プログラミングに関する質問ではありません。このようなしきい値は、扱っているデータとアプリケーションに完全に依存しています。これは、データの統計的および経験的分析から把握する必要があるものです。ここにいる誰もあなたにそれを与えることはできません。

于 2012-09-01T13:42:46.223 に答える
0

これは、自動的に計算されたバイナリしきい値では注意が必要です。可能であれば、色情報を使用してください。強度情報だけではおそらく十分ではありません。

考慮すべきいくつかのオプションを次に示します。

  1. 別の色空間で作業します。RGB は、多くの場合、HSI ほど有用な色空間ではありません。HSI に変換し、画像内のすべてのピクセルについて H 対 S または H 対 I をプロットすると、紫がかったがんと周囲の組織の色の違いを見つけることができるはずです。グレースケール画像でこれを行うのははるかに困難です。
  2. イメージを 2 値化する代わりに、流域アルゴリズムの使用を検討してください。これにより、画像が 1 つの前景と 1 つの背景だけに分割されます。それとも、それよりも...
  3. この問題に非常に適している平均シフト クラスタリングを試してください。平均シフトは、変な形をしていても、隣接する同様の色の領域でブロブを見つけます。

http://www.cs.cityu.edu.hk/~wzhao2/mean_shift.htm

http://www.mathworks.com/matlabcentral/fileexchange/10161-mean-shift-clustering

于 2012-09-21T02:04:36.680 に答える