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
No.1
- 回答日時:
画像を見ての通り正しく変換されていると思われますが、何か問題があるのでしょうか?
HSV画像をcvShowImageすればこうなります。
No.2ベストアンサー
- 回答日時:
cvCvtColorで変換したものは、別に色空間情報を持っているわけではありません。
CV_BGR2HSV で変換した前も後も「3チャンネルの画像」でしかありません。
cvShowImageは BGRの3チャンネル画像をカラー表示することはできますが、HSVの画像から色を復元するようなことはしません。
そもそも、画像がBGRなのがHSVなのか判断できないのですから。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
windowsは画像にマウスオンで画...
-
タイトルバーに画像を入れるHTM...
-
webサイトを作っているのですが...
-
リンクバナーのHTMLタグ。画像...
-
IMGタグでTIFF画像を表示
-
ボタンを押したままにする。
-
リンクの上にマウスカーソルを...
-
IFRAME内に収まるように画像を...
-
HTMLだけで画像をクリックして...
-
カーソルが画像に触れたら文字...
-
ie8でaltを表示させる方法
-
<A href= と<IMG srcの使い分け
-
onmouseoverに複数の命令を書き...
-
pngやjsの後ろの英数字の意味は...
-
崩れたレイアウトが更新すると...
-
背景画像がちらつく原因は?
-
IE11にてonclickの動作不良
-
拡張子無しで画像を表示したいです
-
ホームページの画像が表示され...
-
画像クリックで別の画像
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンを押したままにする。
-
背景が透明なリンクボタンで、...
-
バナーの貼り方とバナーにリン...
-
HTMLにQRコードを挿入する方法
-
IMGタグでTIFF画像を表示
-
スライドショーの上にロゴマー...
-
pngやjsの後ろの英数字の意味は...
-
タイトルバーに画像を入れるHTM...
-
拡張子無しで画像を表示したいです
-
form以外でのpostってできますか?
-
クリッカブルMAP領域が分かる様...
-
クリックしても、リンクに飛ば...
-
予約語の表示について
-
HTMLでデスクトップの画像がでない
-
崩れたレイアウトが更新すると...
-
画像クリックでクリップボード...
-
カウンターのHTMLソースを教え...
-
カーソルを合わせると文字が出...
-
IFRAME内に収まるように画像を...
-
tifファイルが表示されない
おすすめ情報