質問: b;としたときに、a < b だとはっきりわかるもの。 よろしくお願いします。 ### 追記 申し訳ありません、試してからベストアンサーを選びたいという身勝手な思いがあるので、まだ回答募集中になっています。 また、今リアルが忙しいので、あと数日はできません。
回答: 単に色の近さ(赤に対してオレンジと黒のどっちが近い色かというようなこと)を調べたいだけなら、RGBでもできますね。RGBを3次元座標と捉えて、二つの色の距離を計算するだけです。 C++になってしまいますが、単純な画像データの処理なら`ATL`(Windows SDK)の`CImage`クラスを使えば簡単にできます。 使い方自体は簡単ですし前提条件は何もないので、Cスタイルのプログラムからでも問題なく使えます。 ``` #include // ↑CImageクラスを使うためのヘッダーファイルをあらかじめインクルードしておくこと // 画像ファイルのロード CImage image; HRESULT hr = image.Load(画像ファイルのパス); if(FAILED(hr)) { // エラー } // 指定座標からの色の抽出 COLORREF color = image.GetPixel(x座標, y座標); BYTE r = GetRValue(color); BYTE g = GetGValue(color); BYTE b = GetBValue(color); // 色の距離を計算 int r_diff = (int)r1 - r2; int g_diff = (int)g1 - g2; int b_diff = (int)b1 - b2; int diff2 = r_diff * r_diff + g_diff * g_diff + b_diff * b_diff; double diff = sqrt(diff2); // ※距離の大小比較だけならsqrt不要 ``` ちなみに、CImageが読み込める画像形式はBMP,PNG,GIF,JPEG,TIFFです。詳しくは当該リファレンスを参照してください。