私はMatlabと画像処理も初めてです。このような画像で背景と前景を分離する作業を行っています

私はこのような画像を何百枚も持っています。試行錯誤により、(RGB 空間で) しきい値を見つけました。赤のレイヤーは常に 150 未満であり、背景がある場所では緑と青のレイヤーは 150 を超えています。
したがって、私のRGB画像がIおよび私のr場合g、bレイヤーは
redMatrix = I(:,:,1);
greenMatrix = I(:,:,2);
blueMatrix = I(:,:,3);
赤、緑、青の値が150より大きいか小さい座標を見つけることで、次のような背景の座標を取得できます
[r1 c1] = find(redMatrix < 150);
[r2 c2] = find(greenMatrix > 150);
[r3 c3] = find(blueMatrix > 150);
で何千ものピクセルの座標を取得するようになりましたr1,c1,r2,c2,r3 and c3。
私の質問:
赤が 150 未満で、緑と青が 150 より大きいピクセルの座標など、一般的な値を見つける方法は?
r1andのすべての座標を反復しc1、それらが発生するかどうかをr2 c2確認r3 c3し、それが共通点であることを確認する必要があります。しかし、それは非常に高価です。 これはループなしで実現できますか?[commonR commonC]どういうわけか、 andcommonRとcommonCare both of order のような共通点を思いついた場合5000 X 1、 Image のこの背景ピクセルにアクセスするIには、最初にアクセスしてから、次commonRのようにcommonCimageにアクセスする必要がありますII(commonR(i,1),commonC(i,1))
それも高価です。繰り返しますが、私の質問は、これをループなしで実行できるかということです。
どんな助けでも大歓迎です。
@Science_Fictionの回答で解決策を得ました
彼/彼女の答えを精緻化するだけです
使った
mask = I(:,:,1) < 150 & I(:,:,2) > 150 & I(:,:,3) > 150;


