私は、色を検出し、その色でそのピクセルのx、y座標を見つけることができるプログラムをVisual Studio C#で作成しています。私は研究をしましたが、私はあなたがすでに座標を与えて、それが色を感知しています、それは私が望むものではなく、私は色を与えたい、そしてそれは座標を見つけることです。誰でもこれを行う方法を知っていますか?ありがとう色のピクセル座標を見つける
答えて
1)テクスチャをバイトの配列として読み込みます。 RGBで(0、 - (1,0) 222でRGB - (0,0) 111でRGB - 000::あなたのテクスチャは2x2のサイズであれば、例えば、 は、それは次のようになります1) 333 - RGBで(1,1) 000または111の意味は3バイトです。ここで、各バイトは赤、または緑、または青です です。 これを実行したら、すべてのxとyのループ、 を実行し、現在の位置の色が検索した色と一致するかどうかを確認できます。
イメージをBitmapオブジェクトに供給し、getPixel(x、y)メソッドを呼び出して、特定のポイントでピクセルを取得できます。 Bitmapオブジェクトはイメージの大きさを持つため、すべてのピクセル(YIKES!)を繰り返し処理して、目的の色と一致するかどうかをテストできます。 getPixel()は、操作可能なColorオブジェクトを返します。ここで私は超高速に仕事をしています。 pictureBox1は、フォーム上のPictureBox要素です。
Bitmap b = new Bitmap(pictureBox1.Image);
Color c = b.GetPixel(0,0);
一致画素の検索は、nは画像内のピクセルの数であり、最悪の場合はO(n)であること、しかし、覚えておいてください。小さな画像や多分中規模の画像ではこれほど悪くはありませんが、巨大な画像の場合は、プログラムがハングアップすることがあります。
パフォーマンスを向上させるには、検索を複数のセグメントに分割し、より小さいセグメントを検索してみます。 – Reddog
あなたはすでにこれで見つかった方法を使用することができます。ユーザーが入力した色と同じ色を見つけるために、すべての座標ですべてのピクセルをチェックします。 0、0で始まります。次に、ピクセル値の行の終わりになるまでX値をインクリメントします。 X値が行の最後に来るたびに、Y値をインクリメントしてXを0にリセットします。ユーザーが入力した色の値に等しい色の値を取得すると、最後に使用されたX座標とY座標一致するものを見つける前に、ユーザーに返されたものがあります。
あなたがkevin628は言ったが、それはこのようなすべてのピクセルを検索しますので、for
文を追加し、@何ができる
:
private void GetPixels()
{
Bitmap b = new Bitmap(pictureBox1.Image);
List<Color> colorList = new List<Color>
{
};
for (int y = 0; y < b.Height; y++)
{
for (int x = 0; x < b.Width; x++)
{
colorList.Add(b.GetPixel(x, y));
}
}
}
その後this imageを使用して、あなたはそれとして、このような何か(全体ではなく、これを取得します
カラー[A = 255、R = 247、G = 240、B = 136]
そして
カラー[A = 255、R = 252、G = 247、B = 155]〜50000行)であります
[A = 255、R = 242、G = 238、B = 164] カラー[A = 255、R = 79、G = 124、B = 103]
カラー[A = 255、R = 79、G = 124、B = 103]
カラー[A = 255、R = 0 、G = 42、B = 17]
カラー[A = 255、R = 16、G = 104、B = 90]
カラー[A = 255、R = 15、G = 114、B = 109] カラー[A = 255、R = 33、G = 125、B = 124]
カラー[A = 255、R = 11、G = 83、B = 80]
カラー[A = 255、R = 36 G = 72、B = 68]
カラー[A = 255、R = 151、G = 156、B = 150]
カラー[A = 255、R = 90、G = 70、B = 59]
カラー[A = 255、R = 147、G = 109 、Bは= 88]
カラー[A = 255、R = 252、G = 204、B = 164]
カラー[A = 255、R = 220、G = 175、B = 134]
カラー[A G = 104、B = 91]
カラー[A = 255、R = 108、G = 94、R = 185、R = 179、G = 187、B = 162] B = 93]
[A = 255、R = 241、G = 235、B = 239]
カラー[A = 255、R = 139、G = 137、B = 142]
カラー[A G = 172、B = 187]
カラー[A = 255、R = 17、G = 62、A = 255、R = 、B = 85]
色=〔A = 255、R = 33、G = 116、B = 146〕
〔A = 255、R = 5〕色[A = 255、R = 40、G = 106、B = 138] [A = G = 96、B = 117]
カラー[A = 255、R = 0、G = 79、B = 84]
カラー[A = 255、R = 6、G = 94、B = 80] カラー[A = 255、R = 27、G = 114、B = 98]
カラー[A = 255、R = 40、G = 130、B = 131]
カラー[A = 255、R = 19 G = 116、B = 125]
カラー[A = 255、R = 21、G = 128、B = 134]
カラー[A = 255、R = 5、G = 119、B = 120] カラー[A = 255、R = 8、G = 120、B = 121][A = 255、R = 46、G = 113、B = 106]
[A = 255、R = 11、G = 107、B = 105] 21、Gが= 70、B = 49]
カラー[A = 255、R = 45、G = 123、B = 99]
色をテストするだけような何か:
をfor (int i = 0; i < colorList.Count; i++)
{
Color c = Color.Black;
if (c == colorList[i])
{
//do something
}
}
- 1. ビットマップデータ内のピクセル位置(x座標とy座標)を見つける
- 2. Opencvホモグラフィでピクセルxy座標からグローバルxy座標を見つける
- 3. プログラミングを使用して各ピクセルの座標を見つける
- 4. グリッド交点のピクセル座標を見つける
- 5. 円周上のピクセル座標を見つけるアルゴリズム
- 6. 輪郭の座標を見つける
- 7. 円内の座標を見つける
- 8. OpenGLイメージプレーン座標を見つける
- 9. デバイスを見つける方法座標
- 10. GtkDrawingAreaから座標のピクセルの色を取得する
- 11. カメラの座標をピクセル座標に変換するopencv
- 12. レイトレーシングのピクセル座標からuvw座標を取得する
- 13. ピクセルへのタイル座標を地理座標に変換する
- 14. 画像のピクセル座標
- 15. Mysql - ビューポート内の座標を持つ項目を見つける
- 16. スクリーン座標にピクセル座標を適用する
- 17. ピクセル座標をワールド座標に変換する方法は?
- 18. OpenCv2でピクセル座標をワールド座標に変換する
- 19. OpeNni:深度座標への色座標
- 20. 正確な地理座標を持つ行を見つける
- 21. Kitti Velodyneポイント座標ピクセル
- 22. Jqueryは左上のピクセル画像の色を見つける
- 23. Slick2dピクセルの色でxとyを見つける
- 24. Rubyを使用してポリゴン内の座標を見つける
- 25. jQuery:divの中心の座標を見つける方法
- 26. 表面の中心の座標xy zを見つける
- 27. Javaの特定の座標でオブジェクトを見つける方法
- 28. 画像Cのバーコードの座標を見つける#
- 29. Actionscript 3 - ムービークリップの端の座標を見つける
- 30. ボーダー付きのHTML5キャンバス(クリック)イベントの座標を見つける
どのようにカラーRGBまたは単色のブルーを与えるつもりですか? –
ほとんどの場合、RGBですが、私は実際にこれのためにどのような機能があるのかわかりません...それが私が求めているものです。 – Pugmatt
あなたはその情報をどこから見つけるでしょうか?あなたは明らかにすべてのxとyをループして、それらがあなたが求める色であるかどうかをテストする必要があります。 – SimpleVar