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ランキング
-
ボタンを押したままにする。
-
背景が透明なリンクボタンで、...
-
画像のアドレスについて
-
HTMLファイルの一部の画像だけ...
-
web制作の初心者です。車のHP...
-
画像を二枚ずつ表示して、選ん...
-
javaスクリプトが反映されない
-
タイトルバーに画像を入れるHTM...
-
画像リンクの上に文字リンクを...
-
崩れたレイアウトが更新すると...
-
IEでのalt属性ポップアップ表示...
-
クリッカブルMAP領域が分かる様...
-
任意の画像を左端と右端をぴっ...
-
すいません HTMLです この画像...
-
HTMLでデスクトップの画像がでない
-
右クリック禁止タグについて
-
セル間に見える微妙な境目を消...
-
IMGタグでTIFF画像を表示
-
フォルダ内の画像をウェブでラ...
-
HTMLタグの画像貼り付けのことで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンを押したままにする。
-
背景が透明なリンクボタンで、...
-
バナーの貼り方とバナーにリン...
-
HTMLにQRコードを挿入する方法
-
IMGタグでTIFF画像を表示
-
スライドショーの上にロゴマー...
-
pngやjsの後ろの英数字の意味は...
-
タイトルバーに画像を入れるHTM...
-
拡張子無しで画像を表示したいです
-
form以外でのpostってできますか?
-
クリッカブルMAP領域が分かる様...
-
クリックしても、リンクに飛ば...
-
予約語の表示について
-
HTMLでデスクトップの画像がでない
-
崩れたレイアウトが更新すると...
-
カーソルを合わせると文字が出...
-
カウンターのHTMLソースを教え...
-
画像クリックでクリップボード...
-
tifファイルが表示されない
-
IFRAME内に収まるように画像を...
おすすめ情報