【OpenCV】BGRからHSVへの画像変換
OpenCVを使って任意の画像データをBGR表色系からHSV表色系に変換するプログラムです。
コンパイルして実行してみたところ、添付画像のように元画像とは色味が異なった画像が出力されてしまいます。
他の画像ファイルを使ってみましたが結果は同じでした。
HSVへの変換がうまくいってないのでしょうが、調べても原因は分かりませんでした。
どなたか分かる方がいらっしゃいましたらご指摘お願いします。
以下にコードを載せます。
#include <cv.h>
#include <highgui.h>
int main (int argc, char **argv){
IplImage *src_img=0; // 入力画像
IplImage *hsv_img=0; // hsvに変換された画像
// (1)画像を読み込む
src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
// (2)読み込んだ画像をhsvに変換する
hsv_img = cvCreateImage (cvGetSize (src_img), IPL_DEPTH_8U, 3);
cvCvtColor (src_img, hsv_img, CV_BGR2HSV);
// (3)画像を表示,キーが押されたときに終了
cvNamedWindow ("Source_Image", CV_WINDOW_AUTOSIZE);
cvNamedWindow ("HSV_Image", CV_WINDOW_AUTOSIZE);
cvShowImage ("Source_Image", src_img);
cvShowImage ("HSV_Image", hsv_img);
cvWaitKey (0);
// (4)メモリ解放
cvDestroyWindow ("Source_Image");
cvDestroyWindow ("HSV_Image");
cvReleaseImage (&src_img);
cvReleaseImage (&hsv_img);
return 0;
}
OS:Windows7
OpenCVのバージョン:2.1
添付画像で用いた画像の形式:png
補足
特定のタグ内の文章であれば丸ごと置き換えることもできるのですが、今回考えておりますのは、ブラウザ上で選択状態にある文章を置換するアクションに対するプログラムであるため、範囲が不定である今回のケースでは難しそうです。