1

私は連続画像取得を行っており、カメラの背景 (カメラに面している) にホワイト ペーパーがあります。

白い背景だけの画像は、部屋で使用されている電球のために緑がかった青みを帯びてGREENおり、次のコードのように出力されます

 green = im(:,:,2);
   red = im(:,:,1);
   if sum( green(:)) > sum(red(:))
       disp('green');
   else
       disp('red');
   end

カメラの前に配置されるカラー オブジェクトのみを処理するためのホワイト ペーパー バックグラウンドへの方法はありますCANCELか??

Color オブジェクトは RED、GREEN、BLUE の四角形になります

4

1 に答える 1

1

緑または赤をテストする方法には根本的な欠陥があります。適切なしきい値を使用して主要な色を探す必要があります。そうしないと、誤検知が発生します。例えば

threshold = 0.7;   % determine a suitable threshold empirically
blue = sum(sum(im(:,:,3)));
green = sum(sum(im(:,:,2)));
red = sum(sum(im(:,:,1)));
total = red + green + blue;
if (red / total > threshold)
    disp("red");
elseif (green / total > threshold)
    disp("green");
elseif (blue / total > threshold)
    disp("blue");
else
    disp("indeterminate colour");
end
于 2012-10-10T15:26:53.610 に答える