0

0、128、255 の 3 つの値を持つ画像 (5x5) ピクセルがあります。

インデックス(1,1)~(1,5)のピクセルを確認したい。

ピクセル値 0 (黒) があれば、インデックス (1,1) ~ (1,5) のピクセルは 128 (グレー) に変更され、ピクセル値がない場合は、ピクセルが 255 (白) に変更されます。

これらの手順をもう一度実行して、インデックス (2,1) から (2,5)、(3,1) から (3,5) を最後までチェックします。

上記の問題から、次のような解決策が得られます。

mask = repmat(any(I == 0,2),5,1);

私 (マスク) = 128;

私 (〜マスク) = 255;

しかし、私がチェックしたい場合...

ピクセル値 0 (黒) >3 がある場合、インデックス (1,1) から (1,5) のピクセルは 128 (灰色) に変更されます。ピクセル値 0 (黒) <=3 がある場合、または黒のピクセルがない場合、ピクセルは 255 (白) に変更されます。

解決策は何ですか?

ありがとうございました

よろしく、ワヒュウ

4

1 に答える 1

0

行列の各行のヒストグラムを計算してみて、ゼロのヒストグラム値を読み取ります。

x = m[1,:];
[counts, bins] = hist(x, unique(x));
[diff, pos] = min(abs(bins - 0));  % replace zero with the value you want to search for
if counts(pos) > 3
    z = 128
else
    z = 255
end
m[1,:] = z * ones(1, size(m)(2));

私はこのページからこのソリューションに触発されました。

于 2012-04-30T05:47:39.920 に答える