- 締切済み
OpenCVでcvSetImageROIについて
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- OpenCVにおいてのYCrCb値の求め方
こんにちは OpenCVを用いてカメラに映る画像の輝度値のCr,Cb成分(画素数全体の平均を取り)を表示する プログラムを作ろうと考えているんですが、サイトを検索していると輝度値の求め方が・・・ Y→輝度値, Cr,Cb→輝度値からそれぞれR成分,B成分を引き取ったもの R,G,B→RGBそれぞれの値,delta→8ビット画像(128) があるとしまして Y = 0.299*R + 0.587*G + 0.114*B Cr = 0.5*R - 0.419*G - 0.081*B + delta Cb = -0.169*R - 0.332*G + 0.5*B + delta と Y = 0.299*R + 0.587*G + 0.114*B (Yは同じ式) Cr = 0.713 * (R - Y) + delta Cb = 0.564 * (B - Y) + delta 2通りあります.どちらの式も違う値(小数部の範囲で)が出ます. どちらが正しいCr成分,Cb成分を求める式なのでしょうか? あるいどちらがより正確な値が求められるのでしょうか? 画像処理を始めたばかりでなので,ご教授よろしくお願い致します.
- ベストアンサー
- C・C++・C#
- MatlabとOpenCVの膨張・収縮の違い
今,matlabの中で画像を2値化して膨張・収縮作業をしていて OpenCVでも同じ画像を使い,やっています。 しかし,まったく同じ構造化要素を用いて同じ回数膨張・収縮しても matlabのほうがより膨張していて,OpenCVはあまり膨張せず,matlabで連結していたところが とぎれとぎれになっています. 膨張・収縮回数を増やせば解決しますが, OpenCVとMatlabでもともとからやり方が違うのでしょうか? 理由がわかりましたら回答お願いします.
- 締切済み
- 情報工学
- openCVについて‥
openCVでIplImage構造体の変数に格納された画像の座標値(i,j)の画素RBG値を取れだす方法を知れたいのですが、ご存知の方、是非ご教授ください。
- ベストアンサー
- C・C++・C#
- OpenCVのIplImage型に関する質問
OpenCVのIplImageという構造体は http://hp.vector.co.jp/authors/VA025246/opencv/004.html のようになっているようなのですが, 画像をキャプチャした際に、「画素のdepthが 8(bit)でチャンネル数3(RGB)のとき」、 char *imageData から、一直線の配列として画像がRGBRGBRGB・・・という風に並んでいて、それぞれの大きさがcharだというのはわかりました。 そこで、imageDataのポインタを進めていって(+1したり+2したりすることで)画像データを読み込んでいます しかし、「depthが32(bit)でチャンネル数1(グレイ画像)のとき」、同じように辿っても、正しいデータが得られませんでした(0.00000という画素値やありえないぐらい大きい値)。 型がcharなので、そこがおかしいのかと思いますが、 char型から始まる画像データなのに、double型(32bit)をどうやっていれてあるのか見当もつきませんし、どうやって32bitずつポインタを進めていくのかもわかりません。 そもそも、ここに本当にデータが入ってるのか・・・(汗 OpenCV経験者の方は少数だと思いますが、画像処理経験者の方など、何か思いつくところがある方、ぜひとも意見をお願いしますm(_ _"m)ペコリ
- 締切済み
- C・C++・C#
- OpenCVで、画像の平均階調値より小さい画素の階調値を0(または25
OpenCVで、画像の平均階調値より小さい画素の階調値を0(または255)にするフィルタを作りたいのですが、どのようにすればよいでしょうか。よろしくお願いします。
- ベストアンサー
- C・C++・C#
- opencvのテンプレートマッチングについて
私は、webカメラを使用し、動画像中の手形をリアルタイムで検出して、その手形に近い指文字を判別して、「あ」の形なら『あ』といった様に順次表示していくといったプログラムを作成しています。 現在、手の部分だけを抽出し、それをhandImageという画像として生成する段階まで来ました。 この後、このhandImageと、あらかじめ用意しておいたテンプレート画像(手の指文字画像)を比較し、handImageに似ている画像を求めるために、テンプレートマッチングを使用したいのですが、うまくいきません。 色々試しましたが、 "Sizes of input arguments do not match (image and template should have the same type)" と出てきたりで動きません。 それぞれの画素を読み込み、輝度値を比較していって似てる画像を探す方法なども考えました。 ザックリとしたソースコードを載せておきます。 IplImage *handImage = cvCreateImage(cvSize(100,100),IPL_DEPTH_8U,1); //手形部分の切り取り画像 IplImage *templateImage; for(int i = 26; i < 26; i++){ //テンプレ画像26枚を読み込む templateImage = cvLoadImage("yubimoji1.bmp") for(int y=0;y<lpt.y-fpt.y;y++){ for(int x=0;x<lpt.x-fpt.x;x++){ if( pix=(uchar)(skinImage->imageData[skinImage->widthStep*(y+fpt.y)+x+fpt.x]); //画素読み込み value1 == value2; //それぞれ輝度値を照らし合わせていく value ++; } ・ ・ ・ if(value > 100 * 100 * 0.8) printf("あ\n"); else printf("い\n"): ・ ・ ・ とまぁ、全然意味不明状態ですね。。。 どなたか、カメラ上(リアルタイム映像)でのテンプレートマッチングの方法、あるいはザックリとソースコードを書いて頂けたら、とても助かります。。。 よろしくお願いします。 動作環境 Windows 7 OpenCV_1.1pre1a Visual C++ 2008 Express Edition
- ベストアンサー
- 科学
- opencvについてご相談があります。
http://tefunamu.com/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/opencv/%E3%80%90ios%E3%80%91xcode%E3%81%A7opencv%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A/ 上記のページにあるopencvのサンプルコードを試してみたのですが、 エラーが出てうまくいきません。 ヘッダファイルに「#import <opencv2/highgui/ios.h>」を貼付けた所、 「'opencv2/highgui/ios.h'file not found」というエラーメッセージが出ます。 どなたか解決方法をご教示頂けないでしょうか。 以上、何卒宜しくお願い致します。
- 締切済み
- その他(プログラミング・開発)
- opencvでのヒストグラム比較
opencv初心者です。 画像処理に興味を持ち、opencv を使い画像の比較をしたいと思っています。 http://d.hatena.ne.jp/ninoseki/20090208 上記のページのプログラムを試し、無事結果は出たのですが Correlation、Chi-square、Intersection、Bhattacharyya distance の4つの違いがわかりません。 どなたか詳しい方ご教授お願いしたいします。 ちなみに、作りたいプログラムは異なる2枚の画像を読み込み、どれぐらい似ているのか判断するものです。 よろしくお願いします。
- 締切済み
- 画像・動画・音楽編集
- OpenCv ヒストグラム比較について
OpenCv ヒストグラム比較について 画像の色を比較するためにヒストグラムを比較する関数cvCompareHistを使って比較しています。 ですが↓の画像の図形でRGB成分を分けてからそれぞれを比較したのですが、必ずどの成分も一致とでます。 ヒストグラムは色の分布を持っていてその分布を比較しているんですよね? cvCompareHistがいまいちなにを比較しているのかがはっきりとわからない状態です。
- ベストアンサー
- 画像・動画・音楽編集
- OpenCVによる4値化について
OpenCVを使って画像を4値化したいのですが、アルゴリズムはわかっているのですがどうプログラムを組めばいいのかわかりません。 アルゴリズムはまず濃度ヒストグラムを作って (1)適当な閾値を3つ(t1,t2,t3),決める。 (2)4つの領域で平均濃度を計算し、それらをa1,a2,a3,a4とする。(4つの領域ってどこ? (3)新閾値t1,t2,t3とt1=(a1+a2)/2,t2=(a2+a3)/2,t3=(a3+a4)/2として計算する。 (4)Σ(j=1,3) |tj-tj|<εならば停止。そうでなければ(2)に戻る。 なのですが、教えて下さい。
- ベストアンサー
- C・C++・C#
- 印刷後のコピー用紙に巻き込みしたような折れ線があります
- EPSON社製品を使用した印刷後、コピー用紙に見られる折れ線の問題について
- 印刷後のコピー用紙に生じる折れ線の原因と解決策について
補足
人物が映っている画像です。 背景と人物が映っている画像Aと 人物のみ映っている部分(背景を含めて)をAから切り出した画像Bを 比較しました. 全く同じ輝度値の画像のはずなので, matlabで画像を読み込みました.そうすると数値が上記の画像のように出てくるので, 輝度値が変わっていることに気付きました。 OpenCVで画像を記録するときにAもBもJPEGで記録しました.