2006年6月アーカイブ

画像処理やってると、ある画像の画素値を見たくなるときがあります。

でも、いちいちプログラミングで座標を指定して画素値を取り出すのは面倒です。
PhotoShop などの画像編集ソフトのスポイトを使えば取れるのですが、だいたい RGB表色系 にしか対応していません。

そこで、表示されている画像の画素をクリックすると、その画素値を取り出し、RGB,HSV,Lab,YCrCb の値として出力するビューアを作りました。
というか、自分用に作っただけです。

pix_viewer.jpgスクリーンショット(クリックで拡大)
(x,y) は、画像の座標。RGB,HSV,Lab,YCrCb のそれぞれの値は 0~255 の値に正規化されています。ただし、HSV の H のみ 0~360。


ビューアをダウンロード
.Net FrameWork 2.0 がないと動きません。Windows Update でダウンロードできます。

みじめなソースも置いときます。
みじめなソース (開発環境: VS2005Pro(C++/CLI),OpenCVb5)
Visual Studio 2005 (Professional Edition) で画像処理ライブラリである OpenCV(beta5) を使うときのメモです。

基本は以下を参考にします。
OpenCV@Chihara-Lab -> インストール。

OpenCV(beta5) のヘッダファイルには間違いがあります。(cvaux.hの1137行目 : "*/" でコメントを終了しなければいけないところが、"・/" になっていて、次の行までコメントアウトされてしまっている。)気づいてくれてありがとう、Chihara-Lab の人。

VS2003 では、上のページにしたがってやれば、導入できるのですが、
VS2005 では、コンパイルしようとすると私の環境では、以下のようなエラー・警告がでます。

VS2005_OpenCV.JPG(クリックで拡大)
1~3つ目のエラーは、"cxtypes.h"内 の 関数"cvRound()"の定義で、"__asm"を使っているからエラーが出ているようです。よって、"cvRound()"を一番安全そうなコードでコンパイルするように変更しましょう。
CV_INLINE  int  cvRound( double value )
{
    double temp = value + 6755399441055744.0;
    return (int)*((uint64*)&temp);
}
たぶん、これで大丈夫です。

4つめの警告は、"cvcompat.h"の該当箇所
    data[2] = A[2]; data[3] = A[5];
    data[2] = A[2];
    data[3] = A[5];
に変更したら、警告はでなくなりました。プログラム詳しくないので、なんでかは分かりません。

このアーカイブについて

このページには、2006年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2006年1月です。

次のアーカイブは2006年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

プロフィール

profile.jpg

モローチョ(moro-tyo)

Webエンジニア。

詳しいプロフィール

このblogのはてブ

Powered by Movable Type 4.1