【Intel】OpenCV総合スレ 3画素目【画像処理】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2010/04/19(月) 23:20:56実装分野は
・ユーザーインターフェイス
・物体分離
・セグメンテーションと認識
・顔認識システム
・ジェスチャー認識
・モーショントラッキング
・感情モーション
・モーション理解
・モーションからの構築(SFM)
・モバイルロボティクス
前スレ
【Intel】OpenCV総合スレ【画像処理】2
http://pc12.2ch.net/test/read.cgi/tech/1230511656/l50
関連リンクなどは
>2-10くらい
0002名無し募集中。。。
2010/04/19(月) 23:24:41画像処理 その12
http://pc12.2ch.net/test/read.cgi/tech/1247100724/l50
【関連リンク】
OpenCVメモ - PukiWiki
ttp://nautilus.cs.miyazaki-u.ac.jp/~yoshi/pukiwiki/index.php?OpenCV%A5%E1%A5%E2
FrontPage - OpenCV@Chihara-Lab.
ttp://chihara.naist.jp/people/2004/kenta-t/OpenCV/pukiwiki/
OpenCV による画像処理
ttp://www-cv.mech.eng.osaka-u.ac.jp/~hamada/openCV/
OpenCVをVisual Studio .NETで使う
http://luvtechno.net/h/?OpenCV
米インテルが,コンピュータによる視覚認識ソフトの新版「OpenCV 2.1」を公開
http://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20011212/5/
0003名無し募集中。。。
2010/04/19(月) 23:27:26http://opencvlibrary.sourceforge.net/
リファレンス日本語訳・サンプルコード
http://opencv.jp/
0005デフォルトの名無しさん
2010/04/20(火) 02:00:180006デフォルトの名無しさん
2010/04/20(火) 09:33:06リンク切れ削除しておいたから
テンプレ変更してね
【関連スレ】
画像処理 その12
http://pc12.2ch.net/test/read.cgi/tech/1247100724/l50
【関連リンク】
OpenCVをVisual Studio .NETで使う
http://luvtechno.net/h/?OpenCV
米インテルが,コンピュータによる視覚認識ソフトの新版「OpenCV 2.1」を公開
http://itpro.nikkeibp.co.jp/free/ITPro/USNEWS/20011212/5/
【良書】
Amazon.co.jp: 詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識
Gary Bradski, Adrian Kaehler, 松田 晃一: 本
http://www.amazon.co.jp/gp/product/4873114136
0007デフォルトの名無しさん
2010/04/20(火) 14:19:040008デフォルトの名無しさん
2010/04/21(水) 07:27:38(IntelとWillow Garageが多いみたいだけど)だから、
○○の会社が開発している!ってこたーないんじゃね?
0009デフォルトの名無しさん
2010/04/21(水) 13:20:050010デフォルトの名無しさん
2010/04/21(水) 19:55:44ほい
0011デフォルトの名無しさん
2010/04/24(土) 08:05:16Mat img = imread(filename, 0);
for(int i = 0; i < img.rows; i++){
for(int j = 0; j < img.cols; j++){
ここをどうやってかけばいいのでしょうか?
}
}
ちなみに画像はこれです
http://imagepot.net/view/127206379328.png
0012デフォルトの名無しさん
2010/04/24(土) 09:22:08cvGet2Dじゃだめなの?
0013デフォルトの名無しさん
2010/04/24(土) 10:17:440014デフォルトの名無しさん
2010/04/24(土) 12:33:40cvGet2Dでいけました
新たな問題が…
ax + by + cz + d = u
ex + fy + gz + h = v
ix + jy + kz + l = 1
x, y, z以外は値が分かっていて、x, y, zを求めたいんですけど、cv::Matをつかって求められますか?
どうやってもとめればいいんでしょうか?
0015デフォルトの名無しさん
2010/04/24(土) 13:36:03| e f g h |
| i j k l |
と( x y z 1 )の転置の行列積が(u, v, 1)の転置になると考えて、式変形すると解けるよ
0016デフォルトの名無しさん
2010/04/24(土) 13:51:18そうやって、変形してからどうやって解けばいいんでしょうか?
cv::Mat inv はつかえないですよね?
0017デフォルトの名無しさん
2010/04/24(土) 13:56:42d, h, l を右辺に移せよ
0018デフォルトの名無しさん
2010/04/24(土) 14:51:11あっ ほんとだ! 解けました
また話は変わるんですけど、今、複数のカメラの画像からの3D座標の再構築をやっているのですが、
手元に、それぞれのカメラの3×4のプロジェクションマトリックスはあるので、
あとは、画像のxy座標を上の式に入れて解いてやればワールド座標が求められるんですよね?
この考え方あってるんでしょうか?
0019デフォルトの名無しさん
2010/04/24(土) 23:03:40参考までにお聞かせください。
マスクにすると?ピクセルの座標が簡単に取得できるんですか?
できるとすると、どのような方法でしょうか?
今まで for文で回して 取得していたもので・・・。
あと、OpenCVって、IPPと違って 1bit カラーで画像を扱えませんよね。
メモリを多く使いますが、8bitグレースケールをマスクとして使うしかないですよね。
0020デフォルトの名無しさん
2010/04/27(火) 18:47:23Corrupt JPEG data:premature end of data segment
と表示されて止まってしまうのですが、
どなたか原因と対策分かる人いますか?
0021デフォルトの名無しさん
2010/04/27(火) 22:26:38[対策] 正常なデータを使用する
002220
2010/04/27(火) 22:55:28ありがとう。どのファイルが壊れてるか確認する方法はありますか?
画像ファイルが一万個ほどあります。エクスプローラでさっと見る限りは異常はなさげですが。
002320
2010/04/27(火) 23:10:21フォルダ内のファイルを一気に解析可能です。
002420
2010/04/28(水) 00:00:56まいったな。
0025デフォルトの名無しさん
2010/04/28(水) 00:31:28手動2分木探査をする。
1) ファイルの半分を別のフォルダに移動。
2) haartraining.exeを走らせる
3) エラーがあったら1にもどる
4) エラーが無かったら別のフォルダに移動してから2にもどる。
これを最後の1ファイルになるまで繰り返す。
0026デフォルトの名無しさん
2010/04/28(水) 08:19:43OpenCVはpythonしかないな
0027デフォルトの名無しさん
2010/04/28(水) 12:28:42画像はcvLoadImageで読んでいるから
全部の画像をcvLoadImageで読み込むプログラム作ったら分かるよ。
0028デフォルトの名無しさん
2010/05/02(日) 08:59:41誤検出率があまりにもひどいな
びっくりしたわ
平坦な場所とかで検出してるし
せめて必ず正解を含んでるとかならまだしも
明らかな顔があっても拾わない事が多いな
0029デフォルトの名無しさん
2010/05/02(日) 12:55:37それでも酷いって言うならパターン自分で作るか
OpenCVに頼らず自分で実装すれば良い
取り合えずOpenCVに文句言うことでは無いと思う
0030デフォルトの名無しさん
2010/05/02(日) 18:53:030031デフォルトの名無しさん
2010/05/02(日) 22:50:59数値を示してないから良い、悪いは何とも言えないが、そう思うなら自分で学習させた方が良いかも。
デフぉの学習画像てどっかで見れるのかな?
0032デフォルトの名無しさん
2010/05/03(月) 05:50:42とっくに作られているだろうからそれを使えばいいよ。
0033デフォルトの名無しさん
2010/05/03(月) 13:33:53個人的にOpenCVは、個人や大学の研究レベルで使う物で、
データや処理の精度なんかを特定(固定)させて、それで望む結果を得るような感じだと思っている
(汎用的で且つ高精度な処理は出来ない)
しかし何を思ったのか、うちの”会社”の上層部がOpenCVを使って売り物を作ろう的な事を言い出したんだ…
例えば、WEBカメラで撮ってる映像から、登録したユーザー個人を認識してピックアップさせたいとか(顔認識を使う)
でライセンスとか特許とか調べ出して本気で使う気なんだ…
でOpenCVは画像処理の敷居を下げる為のライブラリで
商売目的で使うには精度が出ないと実験結果を交えて説明してるんだが、上と担当が全然分かってくれないんだ
俺の実験はわざと失敗する様にしてると言い張り、自分に都合が良い条件で実験実装して出来てる売り物になるの一点張りなんだ
(常に対象が正面を向いてる鮮明な動画を使ってるw)
もう担当じゃないし突き放しても良いんだが、この御時世に同じ”会社”で
そんな事で金と時間と人を使って欲しく無いので止めたいんだが…
俺が製品に対する精度を高く考え過ぎなんだろうか?
0034名無し募集中。。。
2010/05/03(月) 14:48:30デフォルトのOpenCVに出来なくても、その上に自分で作ったアルゴリズムを載せていけば
満足するまでレベルを上げていけると思うけどね
0035デフォルトの名無しさん
2010/05/03(月) 15:27:39要領を得ない内容で申し訳ない
つまり、OpenCVで本格的な商用アプリやサービスを作るのは向かないと思いませんか?
って事
一応大学の院で画像処理を学んだレベルなんだが、OpenCVの判別認識系の処理は精度が低いと思っている
そして、そのライブラリ処理を使って独自の処理を構築するくらいなら、全て自社で開発すればクオリティや作業時間が一番になる筈
(OpenCVの仕様やらインターフェイスに引っぱられるなら使わない方がいいって思ってる)
OpenCVには画像処理の基本をすっとばしてライブラリ使うってイメージしか無いので…
(だから画像処理の敷居を下げる物としては優秀だと思う)
因みにOpenCVを使う事で作成時間的なアドバンテージを得たいとかの主旨ではないです
0036デフォルトの名無しさん
2010/05/03(月) 16:33:00必ずしも間違っているとは言えないと思うが?
0037名無し募集中。。。
2010/05/03(月) 16:36:47>>34でも書いたけど、デフォルトのOpenCVでは商用アプリとして厳しいと思いますが
好きなだけOpenCVに上乗せしていけばいいと思います。
別の顔認識アルゴリズムを載せるのも良いでしょうし、笑顔検出だって欲しければ作ればいい。
OpenCVを使うことと、精度(検出率?)は関係無いと思いますよ。
> そのライブラリ処理を使って独自の処理を構築するくらいなら、全て自社で開発すればクオリティや作業時間が一番
顔認識を商品化するくらいなら、自社ライブラリがあるんじゃないのかな。
OpenCVから欲しいところを自社ライブラリに移植すれば解決だね(クオリティが上がるかは疑問ですが
# ライセンスの事は考えてないので、自分で調べて解決してください
よく解らんが、「OpenCVを使うことで失敗する」ではなく「OpenCVではない別の解決方法」を
上長に提言しないと採用されないのじゃないのかなー
0038デフォルトの名無しさん
2010/05/03(月) 21:24:53上の人も言ってるけど、OpenCV自体は画像処理の土台を提供してくれるものだと思います。
OpenCVの関数は大半がごく基礎的なもので、その上で、キャッチーな機能も実装されてる、ってかんじじゃないかな?
行列演算もフィルタ処理も色空間変換も、SSE化や並列化も全部一からやりたい、って場合もあるかもしれないけど、
あるもの使うのが良い場合もあるんじゃない。
Googleだって、ストリートビューの処理とかでOpenCV使ってるらしいですし。
あ、でもお金あるんだったらHALCONとかの方が簡単な場面も多いと思います。とくにFA用途などでは。
あとOpenCVの認識系の処理の精度が低いって言っているのは、何と比べた結果なのかちょっと気になりますね。
0039デフォルトの名無しさん
2010/05/03(月) 22:27:23顔検出のアルゴリズムをそのままは弱いよな。
真正面しか検出できないし。
0040デフォルトの名無しさん
2010/05/04(火) 15:41:43一般的な商用の画像認識ライブラリの学習データに使ったデータからすると、規模も質も比べ物にならないだろ。
顔認識などか難しいのは、アルゴリズムの実装じゃなくて、データ収集と学習処理時間への投資がかなりの規模になるってことなんじゃないか。
商用の場合、規模と質を背景に、高いライセンス料を取るわけだ。
0041デフォルトの名無しさん
2010/05/04(火) 16:29:17画像の量は、単に増えても過学習を引き起こすか、ペナルティで意味がなくなるだけなんじゃ?
なんか顔検出に話が偏ってるけど、そもそも頭抜けた検出率の商用ライブラリとか存在するの?
みんないったい何のソフトの話をしているんだろう・・・
ちょっとだけ斜め方向の検出率が良くなりました、とかそんなイメージ。
0042デフォルトの名無しさん
2010/05/04(火) 18:31:36研究用のシンプルな作りのライブラリとは天と地の差になるってことかしら。
でもそれだと研究じゃまともな性能評価は出来ないってことになるような気もしないでも無い
0043名無し募集中。。。
2010/05/04(火) 18:47:501年で70億枚の顔写真をスキャンしたFace.comが顔認識APIを無料で一般公開
ttp://jp.techcrunch.com/archives/201005037-billion-scanned-photos-later-face-com-opens-up-to-developers/
0044デフォルトの名無しさん
2010/05/04(火) 21:26:24APIつってもWEBサービスだね。
0045デフォルトの名無しさん
2010/05/05(水) 00:35:43単に画像処理のサポートをするライブラリとしてみれば
精度もくそもない
0046デフォルトの名無しさん
2010/05/05(水) 10:01:12これと比較すればどれだけクソか分かるだろ
0047デフォルトの名無しさん
2010/05/05(水) 10:13:31すげ〜。 iPhotoもこれぐらい出来てほしいな。
0048デフォルトの名無しさん
2010/05/05(水) 10:25:280049デフォルトの名無しさん
2010/05/05(水) 11:22:51urlsに画像のURL入れたら動く
0050デフォルトの名無しさん
2010/05/05(水) 17:08:060051デフォルトの名無しさん
2010/05/06(木) 01:24:11実行環境にもopencvをインストールしなくてはならないのでしょうか?
現在、「error while loading shared libraries : libcv.so.1: cannot open shared object file : No such file or directory」
いうエラーで困っています。
実行するPCではadmin権限を持っていないので、opencvをインストールすることは難しいです。
開発環境がubuntu8.04、実行環境がcentOS5.2、コンパイラはg++を用いました。
よろしくお願いいたします。
0052デフォルトの名無しさん
2010/05/06(木) 01:46:080053デフォルトの名無しさん
2010/05/06(木) 04:57:39ホームディレクトリにインストール
0054デフォルトの名無しさん
2010/05/06(木) 19:52:39InstallGuide_Linux - OpenCV Wiki#Path Configuration
ttp://opencv.willowgarage.com/wiki/InstallGuide_Linux#PathConfiguration
0055デフォルトの名無しさん
2010/05/07(金) 00:47:46005655
2010/05/07(金) 00:48:280057デフォルトの名無しさん
2010/05/07(金) 01:35:41画像ファイルのURL指定して検出させてみたら
これもそんなにOpenCVと変わらない
0058デフォルトの名無しさん
2010/05/10(月) 14:37:47素でhaarだけやったものと比較したらかなり違うだろ
たぶんいろいろな探索結果を掛けてさらに絞り込んでるんだろうけど
ところで分類器の作り方がよくわからない
WindowsでGUIで動くサンプルを集めるツールとかないの?
画像指定して目的の場所を選択していって
一括でサンプルを生成してくれるみたいな
0059デフォルトの名無しさん
2010/05/10(月) 15:03:510060デフォルトの名無しさん
2010/05/10(月) 23:41:44http://www.udp.jp/SC/docs/
0061デフォルトの名無しさん
2010/05/12(水) 23:02:38なんか理想と違う
0062デフォルトの名無しさん
2010/05/13(木) 12:58:19http://opencv.willowgarage.com/wiki/ObjectDetection
0063デフォルトの名無しさん
2010/05/13(木) 18:37:07また、使用しているOpenCVのバージョンを表示させたり確認する方法ってありますでしょうか?
0064デフォルトの名無しさん
2010/05/14(金) 10:34:22ツールがすでにあると思うが
createsamples.exe
haartraining.exe
0065デフォルトの名無しさん
2010/05/15(土) 02:54:58おまえが使ったことないのは分かった
0066デフォルトの名無しさん
2010/05/16(日) 19:42:560067デフォルトの名無しさん
2010/05/16(日) 23:14:21顔認識を行った後cvsaveimageを用いて画像をjpg形式で保存すると化けてしまいます。
壊れたCRTの画面のような画像になってしまいます。
bmp形式で出力したところ正常な画像でした。
ヘルプお願いいたします。
0068デフォルトの名無しさん
2010/05/16(日) 23:43:270069デフォルトの名無しさん
2010/05/17(月) 02:48:21ImlImage *img = cvLoadImage("a.jpg", 1);
cvSaveImage("b.jpg", img);
のようなコードでも化けるのか確認した?
0070デフォルトの名無しさん
2010/05/17(月) 20:54:56int
main (int argc, char **argv)
{
int i;
IplImage *src_img = 0, *src_gray = 0;
if (argc < 2 || (src_img = cvLoadImage (argv[1], CV_LOAD_IMAGE_COLOR)) == 0){
return -1;}
cvSaveImage(argv[2], src_img);
cvReleaseImage( &src_img );
return 0;}
としてやってみました。
化けてしまいました・・・。
0071デフォルトの名無しさん
2010/05/17(月) 22:55:28libjpegかな
新しいの入れ直してみたらどうだろう
0072デフォルトの名無しさん
2010/05/17(月) 22:56:440073デフォルトの名無しさん
2010/05/17(月) 23:31:16「F」reeBSD
0074デフォルトの名無しさん
2010/05/18(火) 22:09:37opencvのインストールの際の./configureの吐く出力を見てみたところ
Image I/O ---------------------
Use libjpeg: no
となっていました。
/usr/local/libには
libjpeg.a
libjpeg.la
libjpeg.so
libjpeg.so.11
が存在します。どうすればUse libjpegをyesに出来るのでしょうか?
よろしくお願いいたします。
0075デフォルトの名無しさん
2010/05/18(火) 22:39:19どうしても自前でやりたいなら、configure にオプションか、cmake あたりじゃないかしら。
というかそれぐらい解決できないなら、おとなしくPorts使っとけ。
0076デフォルトの名無しさん
2010/05/18(火) 23:20:52使用したいカメラを選択してから使用するソフトを作りたいのですが
OpenCVにusbカメラ名を取得する関数とかありますか?
cvCaptureFromCAMのindex番号とかから取得できる関数がないかなと
opencv.jpでhighguiの関数を見てみたんですがそれらしきものはありませんでした。
winのapiを使うとかしか方法はないのでしょうか?
よろしくお願いします。
0077デフォルトの名無しさん
2010/05/19(水) 06:40:14ルート権限が無い環境なんです・・。
0078デフォルトの名無しさん
2010/05/19(水) 16:19:53videoInputってライブラリ使えばできる。opencvの機能ではないけど。
iplimageの取得まではvideoinputでそれ以降の処理はopencvでやればOK
0080デフォルトの名無しさん
2010/05/20(木) 01:28:33root無しでもPorts使えるよ。
/usr/ports/Mk/bsd.port.mk あたりに説明あるから、適当に環境変数変えてやってみるといいよ。
スレ違いスマソ
0081デフォルトの名無しさん
2010/05/22(土) 00:10:270082デフォルトの名無しさん
2010/05/22(土) 13:05:160083デフォルトの名無しさん
2010/05/25(火) 00:56:10Cで素朴に書いたものよりはるかに高速なんだけど
なんであんな速いの?
マシン語でも混じってるの?
0084デフォルトの名無しさん
2010/05/25(火) 00:57:580085デフォルトの名無しさん
2010/05/25(火) 01:00:560086デフォルトの名無しさん
2010/05/25(火) 07:01:080087デフォルトの名無しさん
2010/05/25(火) 12:54:200088デフォルトの名無しさん
2010/05/25(火) 13:13:370089デフォルトの名無しさん
2010/05/26(水) 00:32:080090デフォルトの名無しさん
2010/05/26(水) 10:29:300091デフォルトの名無しさん
2010/05/26(水) 20:27:41これを正立状態に直したいと考えています。(頭がちゃんと上を向く向きに直したい)
画像がどっちに回転してるか(頭が左を向いてるのか右を向いてるのか)を知る方法ってあるのでしょうか?
0092デフォルトの名無しさん
2010/05/26(水) 20:47:07まっすぐな顔しか検出できない顔検出(たとえばOpenCVの顔検出)で顔検出して
検出された顔が多い角度に投票するようにして最大値をとれば顔の角度が大体分かる。
0093デフォルトの名無しさん
2010/05/27(木) 18:16:510094デフォルトの名無しさん
2010/05/28(金) 18:24:51http://lab.cntl.kyutech.ac.jp/~kobalab/nishida/opencv/01.html
上記のサイトにhaartrainingを行う場合、コンパイルし直す必要があると書いてあります。
しかしビルドしなおそうとしてもerror LNK2019が発生してしまい、ビルドができません。
ここでふと思ったのですが、現状のopenCV2.1verでもビルドし直す必要はあるのでしょうか?
必要がないならこのまま使ってしまおうかと思います・・。
0095デフォルトの名無しさん
2010/05/28(金) 20:35:14情報が古い
必要ない
0096デフォルトの名無しさん
2010/05/28(金) 20:49:43すげぇがんばったのにorz
0097デフォルトの名無しさん
2010/05/31(月) 20:55:010098デフォルトの名無しさん
2010/05/31(月) 21:38:21インストールしたフォルダにuninstall.exeがあったと思う
0099デフォルトの名無しさん
2010/06/01(火) 00:33:02すみません。書き忘れたのですがMacです
0100デフォルトの名無しさん
2010/06/01(火) 01:41:48libopencv_calib3d.2.1.1.dylib
などの2ファイル名に2.1.1が入ったものはありますか?これは2.1の残骸でしょうか?
0101デフォルトの名無しさん
2010/06/07(月) 20:02:40OpenCVのサンプルのstereo_match.exeをcygwinで動かそうと
./stereo_match.exe left01 right01
と打ったら
OpenCV Error: Assertion failed (img.type() == CV_16SC1) in unknown function, file
..\..\..\..\ocv\opencv\src\cv\cvstereosgbm.cpp, line 824
と返されたのですが原因は何でしょうか?いろいろ調べたのですがわからずじまいです。
0102デフォルトの名無しさん
2010/06/13(日) 03:35:292枚の画像間のF行列はcvFindFundamentalMatで求められると思いますが、
そこから回転R, 並進tに分解はできるのでしょうか?
カメラはキャリブレーションされていません。
したいことはstructure from motion(SfM)のカメラ運動推定をしたいのですが…
よろしくお願いします。
0103デフォルトの名無しさん
2010/06/13(日) 08:21:570104デフォルトの名無しさん
2010/06/13(日) 11:58:02今のところF行列からのsfmで一番簡単かつ詳しいのが↓
http://www.suri.cs.okayama-u.ac.jp/~kanatani/papers/new2views.pdf
このアルゴリズムのF行列求めた後を自前で実装すればいい
ただカメラの配置に気をつけないとすぐに破綻するから要注意だ
0105デフォルトの名無しさん
2010/06/14(月) 02:05:10>>104
ありがとうございました。
>>104さんの参考URL参考になります。
実装できるかわかりませんがやってみます。
0106デフォルトの名無しさん
2010/06/14(月) 22:52:414章の焦点距離を求めて
5、6章の回転、並進から3次元点を出せばいい
行列計算の順番を間違えなければできるはず
0107デフォルトの名無しさん
2010/06/15(火) 05:05:35cvLoadImage関数を、main関数内から直接呼ぶ場合は大丈夫なんですが、
クラスを作り、その中のメソッド内で呼び出すと、実行時エラーが発生してしまいます。
(おそらく戻り値がおかしいか、空っぽ)
これはなんでなんでしょうか?
原因が分からず、今はしかたなく cvLoadImage関数を使っている関数を、
inline関数にして使っています。
0108デフォルトの名無しさん
2010/06/15(火) 18:56:52クラスがおかしいんじゃね?
ソース見てみないと何とも言えない
0109デフォルトの名無しさん
2010/06/15(火) 22:50:27環境もバージョンも書いてないので、状況はさっぱりわからんが
0110デフォルトの名無しさん
2010/06/16(水) 20:51:24cvLoadImage (highgui) のバグを検索してみると:
https://code.ros.org/trac/opencv/query?component=highgui&summary=%7EcvLoadImage&col=id&col=summary&col=owner&col=type&col=priority&order=priority
こんなのが引っかかった (ちょっと大きいBMPを読み込みとクラッシュしたりする):
#370 (cvLoadImage crashes when loading HD - images as *.bmp) -- OpenCV -- Trac
https://code.ros.org/trac/opencv/ticket/370
このバグの条件に該当してるなら、コードを以下のように修正してOpenCVをビルドしてみると良いよ:
Changeset 3147 -- OpenCV -- Trac
https://code.ros.org/trac/opencv/changeset/3147
0111デフォルトの名無しさん
2010/06/17(木) 17:52:21createsamples.exeで複数のimgデータを読み込んで、出力された複数のvecファイルのデータを統合したいのですが・・
0112デフォルトの名無しさん
2010/06/18(金) 02:12:47ビンゴです!ありがとうございます!
0113111
2010/06/18(金) 14:46:13vecファイルでなくても、ようは複数のbmpイメージから1つのvecファイルを生成したいのですが可能ですか?
例えば画像が7つあってそれぞれ1000パターンずつ合計7000のデータを1つのvecファイルにしたいです
0114111
2010/06/18(金) 16:37:100115デフォルトの名無しさん
2010/06/18(金) 18:50:43http://livedoor.blogimg.jp/tekepo/imgs/3/4/3414dfca.jpg
ばらまこうぜ!
0116デフォルトの名無しさん
2010/06/22(火) 18:37:09haartrainingとcreatesamplesに用いる背景画像(ネガ画像)についての質問です。
現在顔ではなく、顔以外の物体認識を考えているのですが
・背景は一定ではないが同じような背景(場所は違うが常にコンクリートの上 など)
この条件の場合
1.createsamplesに使う背景はコンクリートを使うべきか、なんでもいいのか、使わない方がいいのか
2.haartrainingに使うネガティブ画像も同様に考えていいのか?
3.haartrainingに使うネガティブ画像のサイズはポジ画像を-w 24 -h 24で設定した場合
24*24のサイズがあれば十分なのか
について意見を聞きたいです。
とくに3に関して1枚の画像から小さなネガ画像を大量に作れるか否かで全然変わってくるのでお聞きしたいです。
またもう1つ疑問なのですが、haartrainigでネガ画像枚数を仮に300と指定した場合、
こちらで指定したtxtに画像が10個しかない場合と500個指定されてる場合、どういう動作をしてるのでしょうか?
予想では10個の場合はネガ画像10個指定と同じ処理がされ、500の場合は上から300個の画像を取り出して学習してると考えているのですが・・。
以上長くなってしまってすみません。
0117デフォルトの名無しさん
2010/06/22(火) 20:48:50本当にコンクリートの上でしか使わないならコンクリートでいい
ただゴミが落ちてたり草が生えていたり段差があったりと
明暗の変化がある画像を使わないと意味ない
ネガは大きな画像を指定してhaartraining側で切り出して使うので
大きな画像をたくさん用意したらいい
詳細はソースコード読め
0118デフォルトの名無しさん
2010/06/23(水) 00:01:05capture = cvCaptureFromCAM(0);
hoge = cvQueryFrame(capture);
として cvReleaseImage(&hoge); とすると
Microsoft C++ の例外: cv::Exception というエラーが出ますが、どうしてでしょうか?
0119デフォルトの名無しさん
2010/06/23(水) 00:08:440120デフォルトの名無しさん
2010/06/23(水) 01:25:060121デフォルトの名無しさん
2010/06/23(水) 01:50:480122デフォルトの名無しさん
2010/06/23(水) 03:20:26ってことか
0123デフォルトの名無しさん
2010/06/23(水) 15:28:59�dクス
0124デフォルトの名無しさん
2010/06/23(水) 16:07:44ありがとうございます
ついでにhaartraining中のBACKGROUND PROCESSING TIMEがステージ数が増えるごとにどんどん
倍化してしまったのでソース見直してきますorz
0125デフォルトの名無しさん
2010/06/23(水) 21:03:110126デフォルトの名無しさん
2010/06/23(水) 21:16:46cvSetCaptureProperty
0127デフォルトの名無しさん
2010/06/25(金) 13:16:19opencv2.1をtbb付きでc-makeでコンパイルして使おうとしてるんですが、以下のようなエラーが出ました。
プログラムは以下のサイトのサンプルです。
ttp://imagingsolution.blog107.fc2.com/blog-entry-149.html
32bitのPCでは同様の手順で実行できました。
どうすれば解決できるでしょうか。
1>------ ビルド開始: プロジェクト: OpenCV20Sample, 構成: Debug x64 ------
1> OpenCV20Sample.cpp
1>c:\opencv-2.1.0\include\opencv\cxmat.hpp(100): fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'f:\dd\vctools\compiler\utc\src\p2\wvm\mdmiscw.c', line 2704)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1> Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
0128デフォルトの名無しさん
2010/06/26(土) 15:24:03結局2008に戻したけど
0129デフォルトの名無しさん
2010/06/26(土) 22:39:550130デフォルトの名無しさん
2010/07/01(木) 11:25:152.0まではあった気がしたんだけど・・・
0131デフォルトの名無しさん
2010/07/01(木) 19:45:520132デフォルトの名無しさん
2010/07/03(土) 00:00:20今ちょうど同じ質問しようと思ってた所だ
未来の俺ありがとう
0133デフォルトの名無しさん
2010/07/05(月) 17:56:30+----+----+-+---------+---------+---------+---------+
|2850| 27%|+|-25.646017| 0.995070| 0.962694| 0.394669|
+----+----+-+---------+---------+---------+---------+
|2851| 28%|-|-25.264372| 0.995070| 0.962694| 0.394830|
+----+----+-+---------+---------+---------+---------+
|2852| 29%|+|-25.438967| 0.995070| 0.963731| 0.394507|
+----+----+-+---------+---------+---------+---------+
・
・
・
Stage7が半日立っても終わりそうにありません。これって普通ですか?
32*32の画像に対して、-h 31 -w 31とやったのがまずかったのでしょうか
0134デフォルトの名無しさん
2010/07/05(月) 18:07:5731x31なら2週間くらいかかる
0135デフォルトの名無しさん
2010/07/05(月) 18:16:32hitrateがずっと0.995070、falsealarmもずっと0.96前後であまり変化していなくて、
正直終わるかどうか不安ですがもう半日様子見てみます!
0136デフォルトの名無しさん
2010/07/06(火) 11:18:450137デフォルトの名無しさん
2010/07/06(火) 19:31:13ソースコードを見返して原因となるようなものは改善してみたんですが。。。
OpenCV2.1による不具合の可能性とかはあるんでしょうか。
0138デフォルトの名無しさん
2010/07/06(火) 21:35:210139デフォルトの名無しさん
2010/07/07(水) 11:38:19ffmpegにvdpauを組み込んでビルドしても早くならないし
cvQueryFrame() でコーデック(h264_vdpau)の指定ってできない?
0140デフォルトの名無しさん
2010/07/07(水) 22:05:14openCVに画像を分割する関数ってありますか?
0141デフォルトの名無しさん
2010/07/07(水) 22:31:130142デフォルトの名無しさん
2010/07/08(木) 00:31:25つまり、こんなのか?
http://opencv.jp/sample/initialization.html#shuffle
0143デフォルトの名無しさん
2010/07/08(木) 00:52:11あぁこんなイメージです!
これで色々がんばってみます、どうもです!
0144デフォルトの名無しさん
2010/07/09(金) 08:13:19宮崎の口蹄疫を時系列で確認
http://anond.hatelabo.jp/20100510214137
(一番まとまってるけどgoogle八分されてる 検証 http://testdonetest.blogspot.com/2010/06/google.html )
2000年の自民党政権の口蹄疫への対応と、民主党の口蹄疫への対応を比較
http://anond.hatelabo.jp/20100511231152
口蹄疫対策に関する霞ヶ関の「中の人」のつぶやきまとめ
http://togetter.com/li/19383
他の関連情報
http://anond.hatelabo.jp/keyword/%E6%82%A3%E7%95%9C
赤松広隆農水相の「外遊ゴルフ報道」TBS局内で懲戒処分
http://sankei.jp.msn.com/economy/business/100605/biz1006051059003-n1.htm
http://mac.blog.so-net.ne.jp/2010-06-05-1
消毒液横流しの検証
http://togetter.com/li/20461
http://togetter.com/li/20520
口蹄疫を出した農家が自殺
http://b.hatena.ne.jp/entry/twitter.com/matsudatsumugu/status/14293440599
http://twitter.com/mk00350/status/14300839015
0145名無しさん@そうだ選挙に行こう
2010/07/11(日) 20:44:45OpenCVを使って、ボタンをクリックすると、ダイアログ内のIDC_STATIC_BMPにカメラから取得した動画を転送したいのですが、
動画を静止画の連続と考え、下記の様なコードを組みました。指定したダイアログ内のIDC_STATIC_BMPに描画は出来ましたが、
ダイアログが固まってしまいます。
そこで、固まらない様にする為にはどのようなコードを書けば良いのかアドバイスを頂きたいと思って質問しました。
環境:visual studio 2008 , windowsxp, OpenCV 1.0, MFCです。 よろしくお願いします。
void hoge::OnBnClickedCaptureMove()
{
int key;
CvCapture *capture;
IplImage *frameImage;
// メインループ
while ( 1 ) {
//カメラからの入力画像1フレームをframeImageに格納する
frameImage = cvQueryFrame( capture );
CDC *pDC = GetDlgItem(IDC_STATIC_BMP)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(IDC_STATIC_BMP)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(frameImage);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
key = cvWaitKey( 1 );
if ( key == 'q' ) {
break;
}
}
cvReleaseCapture( &capture );
}
0146名無しさん@そうだ選挙に行こう
2010/07/11(日) 21:45:11Onなんとかの関数内でループしたら、ループしている間他のメッセージが処理されないので
ウィンドウの反応はなくなる。
OnInitDialog()あたりでSetTimer()して、
OnTimer()内でループ1回に相当する処理を書くのが普通。
0147145
2010/07/12(月) 04:44:58アドバイスありがとうございます。
WM_TIMERを使い、ON_Timer()で記述してみましたが、描画された動画がカクカクなってしまいます。
SetTimerは50msに設定しています。
OpenCVのサンプルコードにあるような別窓を作って、そこにカメラから取り込んだ動画を再生するのではなく、
アプリケーションのダイアログ内に動画を再生出来ないかなと思っています。
何か他の方法はないでしょうか?
0148デフォルトの名無しさん
2010/07/12(月) 06:51:29w
0149デフォルトの名無しさん
2010/07/12(月) 08:03:09方針はそれでいい。タイマー間隔は50msじゃ長すぎるだろうけど・・・
小さくしてまだ滑らかにならないなら、描画処理に時間かかってるか、
カメラ設定でフレーム取得間隔がそもそも長いか。
timeGetTimeとかで処理時間調べてみたら。
それにしてもcvQueryFrame()がフレーム取得までブロックするかどうかとか、
フレーム取得せずしばらく放置したら次取得したフレームは何になるとか、
正確な解説がなかなか見当たらないのがもどかしい。
0150デフォルトの名無しさん
2010/07/12(月) 08:05:470151デフォルトの名無しさん
2010/07/12(月) 09:09:570152デフォルトの名無しさん
2010/07/14(水) 14:50:50マシン構成は Windows 7 Professional 64bit
プロセッサはIntelCore2QuadCPU 2.4Ghz 2.39Ghzです。
RAMは8.00GBです。
haartraining.exe実行時に、-mem 5000 と5000MBのRAMを使うようにしたのですが、
タスクマネージャの、メモリ(プライベートワーキングセット)を見ると、
254,264K(この値のまま不動)しか使っておらず、約255MBしか使用しておりません。
更に、CPU使用率もほぼ25%のままです。もっと使ってくれないのでしょうか。
私の設定がメチャクチャ、ないしこうした方が良いというアドバイスがございましたら、是非教えていただけますか?
0153デフォルトの名無しさん
2010/07/14(水) 16:46:26CPUが25%なのはOpenMPかTBBが有効になっていないからだと思う
コンパイルオプションで有効にしてコンパイルしなおすと100%使うようになる
(今のバイナリ版は有効になっていない?)
メモリは最大値だから必要になっていないだけじゃないかな
並列化してスレッドが増えると4倍に増えるかもしれない
0154152
2010/07/14(水) 17:47:59TBBを有効にするために
http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21
の安定版をインストール(ソースから)の手順に従ってコンパイルしようと思います。
これでできたhaartraining.exeを使用すれば、TBBが有効になっているのですよね?
そして、申し訳ありません。メモリは最大値だから必要になっていないというのは、どういう意味なのでしょうか?
1スレッドで使える最大のメモリ量が255MBくらいだから、それ以上提供しても使えないんだよ という意味でしょうか?
理解が及ばず、お手数をおかけして、ごめんなさい。
0155デフォルトの名無しさん
2010/07/14(水) 18:29:19そもそも附属のhaartraining.exeでマルチコアCPUを100%使い切る事ってできるんでしょうか??
コンパイルオプションの変更等のソース改変無しで、上記が出来ている方おりますか?
0156デフォルトの名無しさん
2010/07/14(水) 19:24:27メモリは32bitOSだったから2GBにしていたけど全部使っていた
TBBは使ったことないので分からない
0157デフォルトの名無しさん
2010/07/14(水) 19:51:13指定する値が事前に計算しておく特徴ベクトルの最大数だからで
全部使いきるかはデータの量によると言いたかった
あと気になったのでhaartrainingのコードを見てみたけど
OpenMPしか対応が入っていないのでOpenMPを有効にしないと並列化できていないと思うわ
0158152
2010/07/14(水) 20:58:56http://opencv-users.1802565.n2.nabble.com/Enable-openmp-missing-td4871327.html
Cmakeするときの、ENABLE_OPENMPのチェックボックスが存在しないので、不思議でしたがこれが原因らしいです。
haartraining.exeなどの為に、旧バージョンのopencvをコンパイルする必要があるのかなと思いました。
0159デフォルトの名無しさん
2010/07/14(水) 21:57:360160デフォルトの名無しさん
2010/07/14(水) 22:10:21appsだから別扱い?
cvhaartraining.cppを見る限りでは
VisualStudioなら言語プロパティのOpenMPサーポートを「はい」にすればいいだけに見えるよ
CMakeはvcprojを生成しているだけでしょ
0161デフォルトの名無しさん
2010/07/14(水) 22:16:140162152
2010/07/16(金) 14:25:19ありがとうございました。おかげ様でちゃんとCPUをフルに使ってhaartrainingができました。
蛇足かも知れませんが。ひょっとしたら同じ問題でつまずいている人が居るかも知れないので、一応記述しておきます。
1.OpenCV2.1をzipでインストールする。exeではなく。
http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21
の言うとおりに、TBBのパス設定なども行う。CMAKEによるビルドも行う。
OpenCV2.1ではCmake時でのEnable_OPENMPというオプションが存在しないが、それで良いので安心する事。
2. >>160さんの言うように、VisualStudioでOpenMPサポートを「はい」に設定する。
http://note.sonots.com/SciSoftware/haartraining.html の How to enable OpenMPを参考にして、設定を行ってReleaseビルドを行う。
trainCascadeも多分やろうと思えばOpenMpを使う設定にできると思う。
3.haartrainingなどのリビルドが完了したら、Cmakeでビルドしたものを展開するフォルダ(buidとする)の中にあるbinフォルダのRelease
にあるhaartraining.exeを使う。更新日時がリビルドした日になってれば、多分リビルドが上手くいってます。
冗長なところもありますが、私はこういう手順でできました。
0163デフォルトの名無しさん
2010/07/18(日) 10:16:35↑のサイトのプログラムを改造して
三つ目の新しいIplImage(二つ目のdst_imgより幻滅した)を作成したいの
ですが、どのようにいじれば良いでしょうか?
0164デフォルトの名無しさん
2010/07/18(日) 17:48:51新しくIplImageの変数、現在のdst_imgより減色した、を作成したいのだが、どこを弄れば良いか
クラスタリングが分かっていれば簡単だが、クラスタ数を変更してやれば好きな色数に変えることができる
MAX_CLUSTERSを弄ってみよう
例えば、
#define MAX_CLUSTERS 16
で16色に減色した画像が得られるだろう
0165デフォルトの名無しさん
2010/07/18(日) 20:31:36即レスありがとうございます。
164さんが仰った感じにしたいのですが、どこで#define MAX_CLUSTERS 16
を書けば良いでしょうか?
0166デフォルトの名無しさん
2010/07/19(月) 20:07:310167デフォルトの名無しさん
2010/07/20(火) 01:20:570168デフォルトの名無しさん
2010/07/22(木) 11:58:18cvCaptureFromFileで8Bitの動画ファイルを読み込んで
cvQueryFrameで画像を取り出すと24Bitになってしまいます。
IPL_DEPTH_8Uのイメージを別に用意して、毎回cvCvtColorで取り出した画像を変換してるけど、
直接8bitの画像として読み込む方法ってありますでしょうか?
(動画の読み込みで何も指定していないので、読み込んだ時点で24Bitに変換している気もしますが・・・)
0169デフォルトの名無しさん
2010/07/27(火) 20:10:28cvcap_vfw.cppいじればできた気がする
0170デフォルトの名無しさん
2010/07/27(火) 21:15:09結局変換しているんじゃないの
0171デフォルトの名無しさん
2010/07/29(木) 15:17:11CPUが25%しか、BACK_GROUNDPROCESSINGの時に使われないのですが(trainingの時はCPUをフルに使う)これは仕方のない事なのでしょうか?
0172デフォルトの名無しさん
2010/08/07(土) 22:55:03OpenCVは見た感じ画像に対して何かするためのSDKに思えるのですが。
0173デフォルトの名無しさん
2010/08/07(土) 23:40:410174デフォルトの名無しさん
2010/08/09(月) 00:26:26肌色から手だけを抽出することは出来たのですが、
半袖でも出来るよう、肌色の色を消したいのですがいい方法ありませんでしょうか?
0175デフォルトの名無しさん
2010/08/09(月) 02:01:430176デフォルトの名無しさん
2010/08/09(月) 02:16:540177デフォルトの名無しさん
2010/08/09(月) 02:30:01すみません 腕の部分を消して手だけ抽出したい ということです。
>>176 ありがとうございます。 やってみます。
0178デフォルトの名無しさん
2010/08/09(月) 04:39:43もうctypes-opencvでいいかと思うんだけど
0179171
2010/08/11(水) 01:18:15確か前にもこういった質問があったので、一応必要かなと思って。
結論から言えば、並列化できません。
cvhaartraining.cppでは、スレッドをパラレルにしてBACK_GROUNDPROCESSING TIMEの処理を行っていません。
私はこれを手動でパラレルに設定しましたが、学習がメチャクチャになってしまいマトモなものができなくなります。
ですから、BACK_GROUNDPROCESSING TIMEを縮めることは諦めてください…。残念ですが。
0180デフォルトの名無しさん
2010/08/11(水) 19:57:01そもそも分割しやすい問題とそうでない問題があってだな
0181デフォルトの名無しさん
2010/08/16(月) 14:25:35Discrite AdaBoostとGentle AdaBoostの違いについて詳しく乗ってる
本やHPなどありませんでしょうか?
探してもなかなか見つからなくて・・
0182デフォルトの名無しさん
2010/08/18(水) 07:09:05opencv ライブラリを用いて作成した実行ファイルを配布したいので、配布先で
Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86) もインストールしてもらったのですが
「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることによって・・・・」
がでます、どうしたらいいでしょうか?
0183デフォルトの名無しさん
2010/08/18(水) 13:16:08DL&インスコしたOpenCV2.1がVS2008でビルドされたものなのが原因で
CVをCMakeでビルドし直して解決したが
2008の再配布パッケージを入れてもよかったのかもしれない
0184デフォルトの名無しさん
2010/08/18(水) 21:07:23ランタイムライブラリをマルチスレッドDLLからマルチスレッドにすると幸せになれるかも?
0185デフォルトの名無しさん
2010/08/27(金) 23:09:39http://opencv.jp/sample/optical_flow.htmlのオプティカルフロー2 cvCalcOpticalFlowBMを実行させたいのですが、実行できません。
ビルドはできるのですが、デバックを開始するとcv::Exceptionと出てきてしまいます。
どのようにすれば動くようになるかよければアドバイスをください。
環境は Windows Vista SP2,Visual C++ 2008 Express Editionです。
0186デフォルトの名無しさん
2010/08/28(土) 19:11:48dlopen(/opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib, 10): no suitable image found. Did find: /opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib: mach-o, but wrong architecture while executing
"load /opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib" ("package ifneeded macports 1.0" script)
invoked from within "package require macports" file "/opt/local/bin/port" line 39)
と出てくるのですが、これはインストールが成功しているということなのでしょうか?
すみませんが、回答よろしくお願い致します。
0187デフォルトの名無しさん
2010/08/31(火) 11:51:28動画ファイルから全体の再生時間を取得したいのですが、うまくいきません。
cvSetCapturePropertyにてCV_CAP_PROP_POS_AVI_RATIOを1.0にすれば良いと思ったのですが、
その後cvGetCapturePropertyにてCV_CAP_PROP_POS_MSECの値を取得しても0が返ってきます。
現在はcvQueryFrameで全ての動画を読み込んでから時間を取得しているのですが、もっと効率の良い方法がありましたら教えてください。
よろしくお願いします。
0188187
2010/08/31(火) 16:36:10CV_CAP_PROP_FRAME_COUNTでファイルのフレーム数を拾って、フレームレートを掛ければ良かったのですね。
0189デフォルトの名無しさん
2010/09/13(月) 17:03:49引数のconst CvPoint2D32f*をpythonでどう渡せばいいか分からないです。
0190デフォルトの名無しさん
2010/09/14(火) 14:22:29なら簡単
ctypesの使い方そのまま適用するだけだし
0191デフォルトの名無しさん
2010/09/22(水) 14:56:21オプティカルフロー(cvCalcOpticalFlowBM)にエラーが出るようになってしまいました。
http://edotprintstacktrace.blogspot.com/2009/10/cvcalcopticalflowbm.html
ココ見て直したけど、サンプルのペンギンじゃフローが出ません。
解決方法分かる方いたらお願いします。
0192デフォルトの名無しさん
2010/09/23(木) 12:09:07時間がかかり、かつ全く使えない件について
0193デフォルトの名無しさん
2010/09/23(木) 20:42:130194デフォルトの名無しさん
2010/09/26(日) 18:27:180195デフォルトの名無しさん
2010/09/26(日) 19:07:08そもそもそれを比較することが間違ってる
opencvは画像処理のライブラリ
0196デフォルトの名無しさん
2010/09/26(日) 22:23:33たかし!
0197デフォルトの名無しさん
2010/09/27(月) 01:42:57face.com
ただface.comのAPIは回数制限がある
0198デフォルトの名無しさん
2010/09/27(月) 19:25:30どこに書いてる?
0199デフォルトの名無しさん
2010/09/28(火) 13:31:42ググレクソガ
http://developers.face.com/docs/terms/rate-limiting/
0200デフォルトの名無しさん
2010/09/29(水) 21:52:50これインストールしてVC++2005でちゃんと動くの?
2008持ってないが
0201デフォルトの名無しさん
2010/09/30(木) 01:28:41VS2005にパッチ入れれば問題ないけど。
0202デフォルトの名無しさん
2010/10/01(金) 11:08:282008ee入れろ
今でもダウンロードできるよ
0203デフォルトの名無しさん
2010/10/01(金) 21:58:15captureFromAviでmpgファイルを開きたいのですが、返ってくるCvCapture*の中身が
空っぽでqueryframeを行っても画像が取れません。
多分コーデックの関係でファイルが開けていないと思うのですが、普通にメディア
プレーヤーでは中身が見れ、また未圧縮Aviファイルは当環境のOpenCVで開く事が出来ます。
どの様にしたら自分の環境でmpgが読み込めるのか、もし分かる方が居たら
教えていただけませんか・・・?
よろしくお願いします。
環境:64bit-Win7 VS2010 OpenCV2.1(x64用コンパイル)
0204デフォルトの名無しさん
2010/10/01(金) 23:14:480205デフォルトの名無しさん
2010/10/02(土) 11:15:12VS2005だと何もかもうまくいかん
zipのほうを解凍してCMake利用してソリューション作成でビルドするとエラーでるし
0206デフォルトの名無しさん
2010/10/02(土) 13:22:47cvCreateFileCaptureじゃだめなのかね
0207デフォルトの名無しさん
2010/10/02(土) 13:34:080208デフォルトの名無しさん
2010/10/02(土) 22:13:17ffmpegあればmpgも読み込めそうだけど
0209208
2010/10/02(土) 22:16:390210203
2010/10/06(水) 09:52:293rdpartyの中にもffmpegが見当たらないので、なんかCmakeの時点で何かが足りてないと
思うんですが、如何せんそれっぽい項目がCmakeの段階で見当たらないんですよね。
もうちょっと色々弄ってみたいと思います。
ありがとうございましたm(__)m
0211デフォルトの名無しさん
2010/10/06(水) 17:11:58そっち(ffmpegのインターフェース)で読み込むようになっていたが。
0212デフォルトの名無しさん
2010/10/15(金) 19:33:02interfacesの中にない?
0213デフォルトの名無しさん
2010/10/16(土) 12:04:59B = img->imageData[img->widthStep * y + x * 3]; // B
G= img->imageData[img->widthStep * y + x * 3 + 1]; // G
R = img->imageData[img->widthStep * y + x * 3 + 2]; // R
HSVの取得は
cvCvtColor(img, img2, CV_BGR2HSV);でRGB→HSV変換してから、
RGBと同じように下のような感じでできますか?
H = img2->imageData[img2->widthStep * y + x * 3]; // H
S= img2->imageData[img2->widthStep * y + x * 3 + 1]; // S
V = img2->imageData[img2->widthStep * y + x * 3 + 2]; // V
0214デフォルトの名無しさん
2010/10/16(土) 13:12:14さっさとMat一本に統一して欲しいもんだ
そもそも関数によって引数がPointだったりMatだったりするのがめんどうだ
0215デフォルトの名無しさん
2010/10/17(日) 01:30:13できると思うけど、できなかったの
0216デフォルトの名無しさん
2010/10/17(日) 02:25:05Vecはマルチチャンネルとかを表現するのが主目的なので
普通にベクトル使いたいんならMatでいい。
というか、面倒な局面がわからんのだが
0217デフォルトの名無しさん
2010/10/17(日) 13:14:44Matは静的配列だしVectorは動的配列Pointに至ってはただの点
0218デフォルトの名無しさん
2010/10/17(日) 13:17:50これで面倒じゃないわけがない
0219デフォルトの名無しさん
2010/10/17(日) 13:31:44それintとdouble混在しててめんどいからdoubleに統一しろって言ってるみたいなもんだぞw
0220デフォルトの名無しさん
2010/10/17(日) 14:19:20Mat M = Mat(vec).reshape(1);
これが面倒?
0221デフォルトの名無しさん
2010/10/17(日) 14:24:50その指摘は全然的外れだろ
Pointは2xNのMatで完全に置き換えることが出来るんだから
>>220
プログラム書くたびにめんどうだと思う
特徴点をPoint出力するなら、特徴点を入力とするF行列もPoint入力とするだろ常識的に
0222デフォルトの名無しさん
2010/10/17(日) 17:50:14intもdoubleで置き換えられますが
0223デフォルトの名無しさん
2010/10/17(日) 18:34:34キャリブレーションは入力がPointでF行列は入力がMatみたいに統一されてないのを不便だと思わない?
0224デフォルトの名無しさん
2010/10/22(金) 05:09:49まあ文化の違いだよ。
0225デフォルトの名無しさん
2010/10/23(土) 16:42:03すみません、質問させてください.
ConvexHull2した凸包の内側だけを同一色で塗りつぶしたいのですが、
findContoursで取得した輪郭を単純にfillConvexPolyしても上手く塗りつぶせないんです。
何か間違っているでしょうか?
0226デフォルトの名無しさん
2010/10/23(土) 20:33:03cocoa アプリケーション上で動かすことはできますか?
0227デフォルトの名無しさん
2010/10/25(月) 21:00:14Error: Target org.macports.configure returned:
********************
cmake requires the Java for Mac OS X Developer Package from Apple.
Please download and install this package from http://developer.apple.com/.
と出るのですが何をインストールすればいいのでしょうか?
0228デフォルトの名無しさん
2010/10/28(木) 16:03:30Visual C++2008 expressionにOpenCV2.0を入れてOpenCVをつかってみようとしているんだけど, 入門書のサンプルプログラムにのっているIp1Imageっていう関数がヘッダファイルに定義されてなくて困ってます.
もしかして, この関数ってなくなったりしたの?
OpenCVのバージョンが違うからそこからわかんない.
0229デフォルトの名無しさん
2010/10/28(木) 16:14:12IplImageでした
ごめんなさい
0230デフォルトの名無しさん
2010/10/30(土) 02:05:14教師画像とチューニング次第でかなり改善する
0231デフォルトの名無しさん
2010/10/30(土) 03:32:56cmakeと書いてあるだろ
>>228
あるよ
highgui.hをincludeしてる?
0232デフォルトの名無しさん
2010/10/30(土) 03:34:550233デフォルトの名無しさん
2010/11/02(火) 04:00:50IplImage、普通にバージョン2.1でも2.0でも使える。
1.0用のサンプルソースがそのまま2.1でも使えるし。
0234デフォルトの名無しさん
2010/11/02(火) 07:12:530235デフォルトの名無しさん
2010/11/02(火) 14:03:49どうしたらいいんだ
Compiler did not align stack variables. Libavcodec has been miscompiled
and may be very slow or crash. This is not a bug in libavcodec,
but in the compiler. You may try recompiling using gcc >= 4.2.
Do not report crashes to FFmpeg developers.
0236デフォルトの名無しさん
2010/11/02(火) 15:30:05俺はVS使っててこれが出るんだがw
0237デフォルトの名無しさん
2010/11/03(水) 09:54:130238デフォルトの名無しさん
2010/11/03(水) 14:28:11windows版の2.1から出るようになったのに海外サイト見ても誰も話題にしてないから不思議だったんだよな
自前でコンパイルしても解決しないし
0239sage
2010/11/04(木) 14:39:36自分もCV_FOURCC('M','J','P','G')にすると出る。
でその後cvWriteFrameしようとすると落ちる。
かれこれ1カ月くらいこれで悩んでる・・・
0240デフォルトの名無しさん
2010/11/04(木) 15:37:50<_>3 0 18 4 -1.</_>
<_>3 2 18 2 2.</_>
とか
<_>8 18 14 4 -1.</_>
<_>15 18 7 2 2.</_>
<_>8 20 7 2 2.</_>
の意味がよくわかりません・・・
上側は恐らくx、y、x、yと座標を指定していて最後の-1と2が白と黒の領域を表しているというのは何と無くつかめるのですが、
下がさっぱりです・・・回転させた特徴・・・?
どなたかわかる方いたら参考サイトでも何でも良いので教えてもらえないでしょうか?
0241デフォルトの名無しさん
2010/11/04(木) 19:41:482.0aはmotion jpegで書き出し出来る
なぜか2.1では落ちるようになった
0242デフォルトの名無しさん
2010/11/04(木) 21:51:51動いたーーー!!!!
と思ったら絵が取れてない・・・
今度はcvDecodeImageが悪さしてるっぽいなぁ
それでも一歩前進したわ。ありがとう。
0243デフォルトの名無しさん
2010/11/05(金) 23:13:07cvWaitKeyで1フレームあたりの時間(1000/fps)から、
前回キャプチャからの経過時間を引いた値をwaitしているのですが
録画時間<再生時間になったりその逆になったりします。。
うまい設定の方法ありませんか?
0244デフォルトの名無しさん
2010/11/10(水) 08:10:54俺もいろんなコーデック入れて試したけど、上手くいかなかった
仕方ないから圧縮無しで動かしてる
0245デフォルトの名無しさん
2010/11/10(水) 08:12:581000fps=1sと思って無いよな?
てか秒間1000毎のカメラってどんなんだ?
0246デフォルトの名無しさん
2010/11/10(水) 12:41:210247243
2010/11/10(水) 12:58:071000msec/設定フレームレートのつもりで書きました。
フレーム間隔を計算するためです。
cvWaitKeyって実際10ミリ秒位の精度じゃないですか?
0248デフォルトの名無しさん
2010/11/10(水) 22:58:07直前のフレームからの経過時間だけでタイミングを取るという
阿呆なことをしてるのですが全体の時間が正しくなりません。
どのようにするのが正しいのでしょうか?
0249243
2010/11/11(木) 07:41:46正しいやり方教えてもらえませんか?
0250デフォルトの名無しさん
2010/11/11(木) 11:10:440251デフォルトの名無しさん
2010/11/14(日) 21:41:39録画中、timeGetTime()関数とかで1フレーム毎の録画時間(現在時刻)を記録しておく。
再生時にcvWaitKey(IntervalTime[frame])とかで録画時と同じタイミングで各フレーム
を表示していけばいいんじゃないだろうか。
0252デフォルトの名無しさん
2010/11/14(日) 21:59:43一応、この手の処理では基本中の基本なんだが
× 前のフレームからの経過時間(相対時間)でタイミングを取る
○ 基準時刻からの経過時間(絶対時間)でタイミングを取る
0253デフォルトの名無しさん
2010/11/15(月) 16:19:33CvSparseMat A
CvMat B
CvMat x
今,このように行列が3つあります(Aだけスパース行列です).
これらを使って,
cvSolve( A, B, x, CV_SVD);
としたのですが,
○○○.exe の 0x766db09e でハンドルされていない例外が発生しました:
Microsoft C++ の例外: cv::Exception (メモリの場所 0x0022e660)。
とエラーが発生してしまいます.
AがCvMatだとうまくいくのですが.
CvSparseMatに対応したcvSolveのような関数がありましたら教えてください.
0254243
2010/11/15(月) 16:20:36相対時間を使うからややこしくなってたんですね。
初心者なもんで。。
どうにか思った通りの速度で録画&再生ができるようになりました!
0255デフォルトの名無しさん
2010/11/15(月) 16:53:15残念だけどないと思う。
ttp://opencv.jp/opencv2-x-samples/usage_of_sparsemat_1_blurring_deblurring
ここの最急降下法を参考にすればいいんじゃない?
0256デフォルトの名無しさん
2010/11/16(火) 20:32:28たとえばequalizeHistなどが何をやっているか見るために
visual studioでデバックをしようと思ってるのですが、当然中身が見れません。
ブレークポイントが使えない場合って変数の動きなどはどうやってみればいいんでしょうか?
0257デフォルトの名無しさん
2010/11/16(火) 22:22:25OpenCVのソース版をダウンロードして、equalizeHist関数を探せばいいさ。
0258257
2010/11/16(火) 22:29:260260デフォルトの名無しさん
2010/11/16(火) 22:52:15中でどうなってるかは、やっぱり>>285のソースを関連付けさせてその中で
ブレークポイントを置くしかないわな
0261256
2010/11/16(火) 23:04:40その通りです、例にそれを出しましたが他にも変数の変化見たいものがいくつかあるので!
ありがとうございます、今度ソースコード関連付けてみます。
0262デフォルトの名無しさん
2010/11/18(木) 10:47:58初めは40msくらいなんですけど、20秒ほどかけて15msまで段々落ちていきます。
原因はなんでしょうか。初めから15msで動作させたいんですが。
0263デフォルトの名無しさん
2010/11/19(金) 04:58:28そういうカメラの仕様なんじゃないかというくらいしか言いようがないなぁ。
プログラム起動したてはWindowsが他の処理にCPUを使ってるからかもしれないし。
0264デフォルトの名無しさん
2010/11/19(金) 08:50:00リリースビルドだと例の文字列が出力されるけど
cvWriteFrameで落ちずに動画ファイルは作れてる
デバッグビルドだと落ちる
0265デフォルトの名無しさん
2010/11/20(土) 13:36:28カメラの自動露出調整とかで、フレームレートが変わってるんじゃ?
0266デフォルトの名無しさん
2010/11/28(日) 00:41:29使えばいいんでしょうか?
第一引数は内部パラメーター(A行列)、第二,三引数は横縦ピクセル数、までは分かるのですが
第四,五のアパーチャ幅と高さってどの部分のことなんでしょうか?
あと、その単位と、返ってくる焦点距離と主点の単位ってmmなのかcmなのか何なんでしょうか?
使い方は例えば
{
cvMat *calibMatr=カメラ行列;
int imgWidth=Width,imgHeight=Height;
double apertureWidth=0,apertureHeight=0;//(不明なのでとりあえずデフォ値の0に)
double fovx,fovy;
double focalLength;
CvPoint2D64f principalPoint;
double pixelAspectRatio;
cvCalibrationMatrixValues(calibMatr,imgWidth,imgHeight,apertureWidth,apertureHeight,
&fovx,&fovy,&focalLength,&principalPoint,&pixelAspectRatio);
}
と実行すれば、fovx,fovyに画角(dgree)、focalLengthに焦点距離(単位不明)、principalPointに
主点の長さ(単位不明)、pixelAspectRatioにアスペクト比が入る。ってことであってますよね?
今回、カメラ行列はCalibrateCamera2で求めた物、そして、アパーチャサイズに0や適当な数値入れると、
この出力結果がぐちゃぐちゃな数値出てしまいました。
0267デフォルトの名無しさん
2010/11/30(火) 19:39:24何桁まで信頼できますかね
0268デフォルトの名無しさん
2010/11/30(火) 19:48:070269デフォルトの名無しさん
2010/12/01(水) 02:06:03PackageForTheWeb Stubというコメントが出てきてインストールできません。
わかる方いたらお願いします。
0270デフォルトの名無しさん
2010/12/01(水) 07:24:16ggrks
0271デフォルトの名無しさん
2010/12/01(水) 12:03:490272デフォルトの名無しさん
2010/12/02(木) 17:17:53オブジェクト検出器も自作したいと思っています。
http://gihyo.jp/dev/feature/01/opencv/0004?page=1
このページを見て、オブジェクト検出器を自作しているのですが、
もっと効率のいいやり方、簡単なやり方はないでしょうか?
お願いします。
Essential OpenCVという本とリファレンスを検索して分からなかったので質問させてください。
現在Picture in Pictureの映像撮影ソフトを作ろうと思い、
初めに解像度の違う画像を重ねるところからやろうと思っているのですが、
調べてみても「解像度が同じものを合成」もしくは「横に並べて連結する」関数しか見つかりませんでした。
解像度の違う画像を重ね合わせることができる関数を教えていただけると助かります。
よろしくお願いします。
開発環境はVistaでOpenCV 1.1pre使ってます
0274デフォルトの名無しさん
2010/12/02(木) 18:09:29cvCopy
cvResetImageROI
の順でどうでしょう
横に並べて連結する関数なんてあったのか…
名前教えてくれ
ありがとうございます。
横に連結する関数ですが私の勘違いでした。すみません。
0276デフォルトの名無しさん
2010/12/03(金) 10:47:42アドバイス通りにやったらできました。
2種類のカメラを認識させ、Picture in Pictureのようなものができました。
この映像ソースをDirectShowフィルタで扱えるように頑張ってみます。
0278デフォルトの名無しさん
2010/12/05(日) 04:29:58C++のcalcOpticalFlowPyrLKのソースを書き換えて高速化すればいいじゃん
0279デフォルトの名無しさん
2010/12/06(月) 05:52:540280デフォルトの名無しさん
2010/12/06(月) 21:10:280281デフォルトの名無しさん
2010/12/06(月) 21:52:560282デフォルトの名無しさん
2010/12/07(火) 07:53:36http://www.aianet.ne.jp/~asada/prog_doc/opencv/opencv_obj_det_img.htm
ここのサイトの「カメラ映像からの顔認識プログラム」
カメラキャプチャではなく
avi動画を読み込み処理を行いたいと試みているのですが
上手く処理することが出来ません。
avi動画の読み込みは
http://chihara.naist.jp/opencv/?%C6%B0%B2%E8%A5%D5%A5%A1%A5%A4%A5%EB%A1%CAavi%A5%D5%A5%A1%A5%A4%A5%EB%A1%CB%A4%CE%C6%C9%A4%DF%B9%FE%A4%DF
を参考にしています。
avi動画を読み込んで、物体検出の処理を行うとき
参考になるようなサイトをご存知の方いませんか?
0283デフォルトの名無しさん
2010/12/07(火) 14:04:11>>282
基本はキャプチャも動画も一緒じゃね
1枚ずつ取り出して処理する訳だし、リンク先の情報で出来ると思うが
とりあえず、「何が」上手く処理出来ないのか言わないと、エスパーじゃないからわからん
0284デフォルトの名無しさん
2010/12/09(木) 17:26:24>>113
のようなことをしたいんですが、コマンド等やり方教えてください
0285デフォルトの名無しさん
2010/12/09(木) 17:49:28正解画像(20枚)を記述した.txtを-info で指定
-num 4000にして実行していますが、
サンプルが20枚分しか作成出来ません。
原因はなんでしょうか?
0286デフォルトの名無しさん
2010/12/09(木) 18:57:43include\opencv2フォルダの中の各フォルダ(core、highgui等)の中が空で、
Cmakeを使ってビルドした後も空です。
なのでincludeフォルダの設定などをきちんと行っても、「ヘッダファイルがない」
というエラーが出てサンプルファイルがビルドできません。
試しにVisualStudio2010用バイナリインストーラでインストールしてみると、
core、highgui等のフォルダの中にはヘッダファイルが入っています。
サンプルファイルのビルドも正常にできます。
Cmakeなどでソースからビルドされた方がいましたら解決策を教えてください。
0287286
2010/12/09(木) 19:39:230288デフォルトの名無しさん
2010/12/09(木) 19:50:16-infoで指定した.txtに矩形位置書いてる?
0289デフォルトの名無しさん
2010/12/09(木) 20:13:10書いてます。
過去スレ漁ったら同様の質問がありました。
mergevecを使ったやり方が提案されていたのですが、
使い方を詳しく説明していただける方いらっしゃいませんでしょうか?
0290デフォルトの名無しさん
2010/12/10(金) 15:50:07infoでリスト指定すると、テキストに書いてる枚数しか生成されない。
ランダムに変形して増やしたい場合は、-imgで画像を1枚指定すると-num数分作られる。
だから、各画像を-img + -numで複数のファイルに書き出したあと
1つに結合しないといけない。
http://note.sonots.com/SciSoftware/haartraining.html#w0a08ab4
に詳しく書いてある。
0291デフォルトの名無しさん
2010/12/11(土) 13:15:592.1で使えてたのに
dst.data == dst0.data in function cvCvtColor
でエラーになる
サンプルコードは動くのに自作のが動かない
0292デフォルトの名無しさん
2010/12/11(土) 17:10:22同じ領域を指定してるからじゃね。
もともとぶっ壊れていたのがassertionついて分かりやすくなっただけだろ。
変換元と変換先の画像を別に用意する必要があるのでは。
0293デフォルトの名無しさん
2010/12/13(月) 10:21:26>もともとぶっ壊れていたのがassertionついて分かりやすくなっただけだろ。
2.1と2.2でソースが全然違ってたからそうではないのかも.
>変換元と変換先の画像を別に用意する必要があるのでは。
data0は変換する前にOpenCVで自動に確保された画像で,
dataはOpenCVで処理が終わったあとの画像っぽいから,
こちら側で渡す引数は間違えてないはず.
0294デフォルトの名無しさん
2010/12/14(火) 18:03:55バグってることはないと思うんだが。
cvCvtColor(A,B,C);
でA==Bであるとか、Cに対して、AやBのチャンネルや型が合ってないとかではないのか。
assertion出てるソース見たら原因は分かると思うが。
0295デフォルトの名無しさん
2010/12/14(火) 22:30:180296デフォルトの名無しさん
2010/12/20(月) 09:28:22入ったって聞いたんだけど
特許切れたってこと?
0297デフォルトの名無しさん
2010/12/20(月) 10:34:03商用に使わなければ問題ないんじゃない?
SURFやSUSANも特許取られている。
0298デフォルトの名無しさん
2010/12/20(月) 14:04:19基本的には変わらないんだろうけど、バージョンが新しくなる度に悩む
せめて2.0で出してくれー
0299デフォルトの名無しさん
2010/12/26(日) 02:46:55これ、Win環境で2.1だと必ずこうなる??
ずっと悩んでるんだけど、だれか解決できた人いないのかなー?
0300デフォルトの名無しさん
2010/12/26(日) 10:36:262.2は改善されてるんだろうか?
0301デフォルトの名無しさん
2010/12/28(火) 13:29:22カメラは接続していないのですが、AVIファイルをexeにドロップしても、
何もせず一瞬で終了されてしまいます。
どなたか原因わかる方いらっしゃいませんか?
0302デフォルトの名無しさん
2010/12/28(火) 13:58:050303デフォルトの名無しさん
2010/12/28(火) 14:02:18OpenCV2.1でAVIファイルをドロップしてみたが、やっぱり一瞬で終了した
0304デフォルトの名無しさん
2010/12/28(火) 14:10:04ソースみてみ。AVIファイルの引数は解釈できるようになってる。
0305303
2010/12/28(火) 14:41:21おおう、cvCaptureFromAVIも使ってた
適当なアドバイスすまんかった
しかも、IkedemoじゃなくLkdemoだし
0306301
2010/12/28(火) 18:32:09lkdemo test.avi
と入力しても
Could not initialize capturing...
と表示されるだけです。
コマンド合ってますよね?
0307デフォルトの名無しさん
2010/12/28(火) 19:00:180308デフォルトの名無しさん
2010/12/29(水) 15:48:50ぐぐっても見つからないんですが
0309デフォルトの名無しさん
2010/12/29(水) 18:50:03トラックバーの値1→画像1
トラックバーの値2→画像2
トラックバーの値3→画像3
のようなイメージで、簡単な画像ビューアのようなものを作りたいのですが……。
0310デフォルトの名無しさん
2010/12/29(水) 20:24:59IPLで必要な関数はほとんどOpenCVにあると思うんだが
>>309
cvCreateTrackbarとcvShowImage使えばたぶんいけると思う
0312デフォルトの名無しさん
2010/12/29(水) 20:44:32>>306のtest.aviってもちろんフルパスだよね?
0313デフォルトの名無しさん
2010/12/29(水) 22:34:44フルパスでもだめです。
申し訳ないですが、素人なので詳しく書かせていただきます。
ちなみにAVIファイルはサンプルと同じ場所に置いてあります
現在のディレクトリ
C:\Program Files\OpenCV\samples\c>
コマンド
lkdemo C:\Program Files\OpenCV\samples\c\test.avi
lkdemo test.avi
いずれもダメでした。
ためしにWEBカメラを接続して実行したら正常に動作しています。
0314デフォルトの名無しさん
2010/12/29(水) 22:37:14いずれの場合でも
Could not initialize capturing...
と表示されるだけです
0315デフォルトの名無しさん
2010/12/29(水) 22:58:03じゃやっぱりAVIが圧縮かかってるんじゃないかな
ためしに下のAVI落として画面出るかやってみて
ttp://jp.fujitsu.com/group/fns/downloads/services/avs/tech/avsexpress-sp20040301/movie-master.avi
0316デフォルトの名無しさん
2010/12/29(水) 23:25:07出来ました…
ご指摘の通りのようです。
しっかりと圧縮の見きわめができず申し訳ありませんでした。
お手数お掛けしました
ありがとうございます
0317デフォルトの名無しさん
2010/12/31(金) 03:44:49サンプルプログラムの「demhist」を改造してカラー画像でもコントラストなどをいじれるようにしたいのですが
これは「updateBrightnessContrast内でチャンネルを分割する処理」を加えることで実現できるでしょうか?
それとも、もっと根本から改造しなければ実現するのは厳しいでしょうか?
何かちょっとしたヒントでも教えていただけたらありがたいです。
よろしくお願いします。
0318317
2010/12/31(金) 12:34:53スレ汚し失礼しました
0319デフォルトの名無しさん
2010/12/31(金) 16:35:33lkdemoに非圧縮aviを読み込ますことはできますか?
出来るならやり方を教えて頂けないでしょうか。
0320デフォルトの名無しさん
2011/01/03(月) 21:00:370321デフォルトの名無しさん
2011/01/04(火) 03:00:10USBカメラからだと全然速いのですが。。。
0322デフォルトの名無しさん
2011/01/04(火) 04:15:38カメラとAVIファイルの縦横サイズは?
0323デフォルトの名無しさん
2011/01/04(火) 08:45:56AVIファイルのサイズはどうやって測るのでしょうか
0324デフォルトの名無しさん
2011/01/04(火) 08:51:310325デフォルトの名無しさん
2011/01/04(火) 12:52:59症状:cvWaitKey()が効かない。(何を押しても-1しか返ってきません。)
例えば
while (1) {
int key = cvWaitKey(TIMEOUT);
printf("%d ", key);
if (key != -1) break;
}
と書いて、コンソールに値を表示させながらキーを押してみても、
-1がすごい速さでどんどん表示されるばかりで、whileループを
いつまでも抜けません。
TIMEOUTの値は0, 1, 2, 10, 33, 100, 1000で試してみましたが、
どれも変化はありません。コンソールに-1が連続して表示される
速度も変化ないように見えます。
cvWaitKey()を使うに当たって、他に必要な準備や前提条件が
あるのでしょうか?
当方の環境はWinXPPro、Visual Studio 2008 Express Editionです。
よろしくお願いいたします。
0326デフォルトの名無しさん
2011/01/04(火) 15:37:28縦×横が何ピクセルか(解像度)を聞いたつもりだったんだけどな。
AVIファイルは右クリック+プロパティで見れる。カメラの解像度は説明書に書いてあると思う。
0327デフォルトの名無しさん
2011/01/04(火) 15:42:43まさかウィンドウを作らずにcvWaitKeyを呼んでるってことはないよね
0328デフォルトの名無しさん
2011/01/04(火) 15:44:54TIMEOUTが0の時でも次の処理にすすむってことはTIMEOUTの値の変更がうまくいってないんじゃないの。
変数で指定してるんならソース内で数字で直接指定してみたら?
0329デフォルトの名無しさん
2011/01/04(火) 16:21:08カメラはISightで640*480で
AVIは720*480です。
0330デフォルトの名無しさん
2011/01/04(火) 16:23:00あと323 != 321で、
329 = 321です。
0331325
2011/01/04(火) 20:14:13>>327
ご回答ありがとうございます。ウィンドウは作っています。
例えば下のようなソースでも、cvQueryFrame()とcvShowImage()は正常に
動作しているのに、cvWaitKey()は-1しか返してこないのです。
CvCapture *capture;
IplImage *frameImage;
char windowNameCapture[] = "Capture";
capture = cvCreateCameraCapture(0);
cvNamedWindow(windowNameCapture, CV_WINDOW_AUTOSIZE);
while (1) {
frameImage = cvQueryFrame(capture);
cvShowImage(windowNameCapture, frameImage);
int key = cvWaitKey(TIMEOUT);
if (key != -1) break;
}
.NET Frameworkの何がしかとか、プラグインとか、何かが私の環境から
抜けているのでしょうか・・・。
0332デフォルトの名無しさん
2011/01/04(火) 21:50:19327だけど、
このままコピペしてint TIMEOUT = 1とかで普通に動いたが(win7 openCVpre1.1)
ソースあるのだしcvWaitKeyを追ってみたら
0333325
2011/01/04(火) 22:51:27>>328
ご回答ありがとうございます。TIMEOUTは直値で与えています。
>>332
やっぱり動いちゃいましたか。まあ、そうなんでしょうね・・・。
いくらやってみてもだめなので、とりあえずcvWaitKey()の代わりに
cvSetMouseCallback()を使い、マウスのクリックイベントで代用することに
しました。(これは正常に動作しています。)
Keyが使えれば、もっと多くの機能をアルファベットでコマンドっぽく
処理させることができると考えていたんですが・・・。
暇ができたらソースも追っかけてみます。
ありがとうございました。
0334デフォルトの名無しさん
2011/01/05(水) 01:03:05動作が同じならコンパイル環境だし、動作が違うなら >>325 の環境でだけ発現する何かだし。
0335デフォルトの名無しさん
2011/01/05(水) 03:53:070336デフォルトの名無しさん
2011/01/05(水) 05:46:23せめてソース
0337デフォルトの名無しさん
2011/01/05(水) 12:58:37>>332はそれでちゃんと動かせてるわけだし。
ソースも環境も曖昧だからなー。
VC++でコンソールアプリケーションなら.net系は関係ないだろうし。
0338デフォルトの名無しさん
2011/01/06(木) 01:27:59VideoCaptureから読み込んだ画像の型をCV_32FC3に変換を行いたいのですが、
VideoCapture vc(0);
Mat m;
Mat converted;
vc >> m;
m.assignTo(converted, CV_32FC3);
imshow("dst",converted);
waitKey(10);
.
.
.
というソースで画像を表示してみても真っ白です。
何か勘違いしているのでしょうか?
0339デフォルトの名無しさん
2011/01/06(木) 20:55:340340デフォルトの名無しさん
2011/01/06(木) 20:56:27convertToだ
0341デフォルトの名無しさん
2011/01/07(金) 23:32:47libフォルダのそれらしい奴はだめだったし
windows7 32bit VS2010 OpenCV2.2です
0342341
2011/01/09(日) 22:53:43ビルドしないだけだった
0343デフォルトの名無しさん
2011/01/09(日) 23:00:36前にあるものを明るく奥にあるものを暗く(重なり?奥行き?)する
処理をやりたいのですがどのようにやればいいのでしょうか。
0344デフォルトの名無しさん
2011/01/09(日) 23:08:550345デフォルトの名無しさん
2011/01/09(日) 23:23:51奥行き取れてません・・・
http://www.toshiba.co.jp/regza/function/10b/function02.html#top
こんな感じのをイメージしていますが、なかなか出来ず。
色が複数含まれている物体を認識したいと思い、輪郭抽出しましたが
満足した結果が得られず、今は奥行きでチャレンジしようとしている所です。
0346デフォルトの名無しさん
2011/01/10(月) 00:57:08・・・まあ今ならkinect買うのが手っ取り早いと思うけど
0347デフォルトの名無しさん
2011/01/11(火) 01:12:43これ、cvCreateFileCaptureでも同じメッセージが出て読み込み出来なかった(´・ω・`)。
非圧縮aviかmpgなら大丈夫。
まあJavaCV経由だから参考にならんかも知れんが。
0348デフォルトの名無しさん
2011/01/11(火) 10:15:57極めるとこんなことも出来るそうだが
http://www.gizmodo.jp/2006/10/post_3.html
0349デフォルトの名無しさん
2011/01/11(火) 10:24:04まあ言うは易く行なうは難しだな
0350デフォルトの名無しさん
2011/01/11(火) 11:48:25画像を構成する直線を調べて、消失点決めてって感じかなあ
写真なのに列車が横を見あげるってすごい不思議な感じだw
0351デフォルトの名無しさん
2011/01/11(火) 18:16:482^i*3^j*5^kピッタリだとそれより小さい数字返してる気がする
サンプルのGetOptimalDFTSize(sz-1)の-1も意味がよく分からん
0352デフォルトの名無しさん
2011/01/11(火) 18:19:42これが5年以上前の成果なのか...
0353351
2011/01/12(水) 13:09:21「2^i*3^j*5^kピッタリ」じゃなく、それより大きい場合だ
まぁOpenCVでDFT使ってる奴っていないんだろうけど
0354デフォルトの名無しさん
2011/01/12(水) 19:16:09動画のデータベースってありますか?
0355デフォルトの名無しさん
2011/01/13(木) 00:30:090356デフォルトの名無しさん
2011/01/13(木) 10:26:140357デフォルトの名無しさん
2011/01/14(金) 00:21:08今のOpenCVなら全身とか上半身の教育データも入ってるみたいだから
上手く組み合わせてみてもいいだろうし
0358デフォルトの名無しさん
2011/01/14(金) 20:44:440359デフォルトの名無しさん
2011/01/14(金) 21:34:320360デフォルトの名無しさん
2011/01/22(土) 23:29:50だってさ
0361デフォルトの名無しさん
2011/01/22(土) 23:54:17記事はどこぞ
0362デフォルトの名無しさん
2011/01/23(日) 00:54:060363デフォルトの名無しさん
2011/01/23(日) 01:00:250364デフォルトの名無しさん
2011/01/23(日) 01:13:31なんか方法ないでしょうか?
0365デフォルトの名無しさん
2011/01/23(日) 03:09:490366デフォルトの名無しさん
2011/01/24(月) 02:40:51ありがとうございます。
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1053269440?fr=pofee_pc
を参考にしてlkdemoの特徴点座標をCSVファイルに書き込むプログラムを作っているんですが、
加えて、その座標の時の時間(もしくはフレームカウント)を表示したいんです。
現在は
cvCircle( image, cvPointFrom32f(points[1][i]), 3, CV_RGB(0,255,0), -1, 8,0);
fprintf(fp, "%d,%d,%d\n",(int)(points[1][i].x), (int)(points[1][i].y),□□□);
となっているんですが、□□□の部分にどのような関数を使えばいいか悩んでいます。
cvGetCapturePropertyやcvSetCapturePropertyのあたりだと思うのですが、
どのような記述をすればいいでしょうか。
その他、付け加える記述もあればどなたか教えていただけるとありがたいです。
的外れな方法だったらすいません。
0367デフォルトの名無しさん
2011/01/24(月) 03:03:16double fps = cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );
でFPS取得して
動画のフレーム取得するときに
cvQueryFrame(capture);
とかやってるんだろうからそこんとこに
framecount++;
とかしとけばいいのでは?
framecount/fpsで時間でるし。
んで質問なんですけど
cvSetImageROI(tmpmsk, rect);
cvSet(tmpmsk, cvScalar(255));
cvResetImageROI(tmpmsk);
この処理の間に微量なメモリリークが発生してるっぽいんですけど
なにか後処理が必要なのでしょうか?
tmpmskの解放はしてあります。
0368デフォルトの名無しさん
2011/01/25(火) 02:41:24具体的にそこでリークしているのはちょっと考えにくい気がする。
初期化と解放のコードは?
メモリリークを検出した手段は?
微量というが何バイト?
0369デフォルトの名無しさん
2011/01/25(火) 17:07:10replaced own point cloud computing by OpenNI ConvertProjectiveToRealWorld()
あとCUDA化も凄まじい勢い
0370デフォルトの名無しさん
2011/01/27(木) 01:07:540371デフォルトの名無しさん
2011/01/27(木) 05:04:19>>367
CV_CAP_PROP_POS_MSECじゃだめなの?
0372デフォルトの名無しさん
2011/01/28(金) 02:38:03具体的にはcvFindFundamentalMat()で返される基礎行列が誤っていて、
32bit環境で実行すると正しい値が出てるんですが…
環境はWin7,VS2008,2.1です
0373デフォルトの名無しさん
2011/01/30(日) 10:38:16http://opencv.jp/opencv2-x-samples/image_binarize
このサンプルとか、
http://d.hatena.ne.jp/Guernsey/20091129/1259456463
こういうサンプルで
Mat imread(const string& filename, int flags=1)
この関数を使うと、ファイルが開けなくて、エラーで落ちる、ファイルのパスを
絶対パスで指定してやってもエラーで落ちる。
皆さんは、うまく動きますか?
環境
Windows 7 64bit(32bit 環境)
Visual Studio 2010 rofessional
VMware Windows XP SP3
Visual Studio 2005 professional
0374デフォルトの名無しさん
2011/01/30(日) 16:23:31ライブラリの外と中でstringが別モノだったりして死ぬ。
みたいな事を自分は経験した。
0375デフォルトの名無しさん
2011/01/30(日) 17:01:00>>374 thx です。
ライブラリィ作成時のコンパイルバージョンって、影響するのでしょうか?
Windows 7 64bit(32bit 環境)
Visual Studio 2010 professional
この環境のほうは
cmake-2.8.0-win32-x86 使ってOpenCV2.0 のライブラリィを
作成しているのですが、その時にVS2010ではライブラリィがビルドできないので
VS2005で作成したライブラリィを使ってサンプルコードなどをコンパイルしています。
ただし、もう一つの
VMware Windows XP SP3
Visual Studio 2005 professional
こっちの環境はライブラリィの作成も、サンプルコードのコンパイルもVS2005なのですがやっぱり、こけてしまうのですが・・・・?
0376デフォルトの名無しさん
2011/01/30(日) 17:32:16自前でビルドしてるならデバッガで追ってみれば。
0377デフォルトの名無しさん
2011/01/30(日) 18:02:05それはひどいな
ニヤニヤ
0378デフォルトの名無しさん
2011/01/30(日) 18:39:45ありがとう、解決しました
もう一つの環境といいますか
Windows 7 64bit(32bit 環境)
Visual Studio 2005 professional
cmake-2.8.0-win32-x86
OpenCV2.0
このパターンを試したら、imreadを動かすことができました。
たの環境では
デバッグすれど、imreadの部分にステップインすると、いきなり
fopen(filename.c_str(), "rb");
ファイルはあるのに、ファイルが無いなどと、わけの分からんエラーで落ちまくります
filename.c_str()がstd::string から char * のキャストなので
まさに同じstring型でも、コンパイルが通らないといったことなんでしょうか??
0379デフォルトの名無しさん
2011/01/30(日) 19:04:38ライブラリの中と外で食い違ったりする。代入とかでメモリ確保したり開放したりするあたり。
0380デフォルトの名無しさん
2011/01/30(日) 19:06:400381デフォルトの名無しさん
2011/02/01(火) 01:37:43ある輪郭の端から別の輪郭の端までの距離がしきい値以内であればその輪郭を結合
という処理をしたいのですが何かいい方法はありませんか?
モルフォロジー演算はなるべくしない方向でいきたいのですが
0382デフォルトの名無しさん
2011/02/02(水) 00:26:03輪郭線抽出してから、輪郭線をある程度の精度で近似した上で、輪郭1の各頂点ごとに、輪郭2の各頂点との距離の最短を求めて、
その全部での最短が一定距離以下だったら・・・みたいにすればできるだろうけどね。
輪郭線近似した上で包含多角形(Convex Hull)を作ってから各頂点ごとに・・・
とすれば、異常に輪郭線入り組んだりして長い場合にも対応できるかも。
0383デフォルトの名無しさん
2011/02/07(月) 02:40:58cvCaptureFromFileで読み込めないんですが どうしたらいいでしょうか?
0384デフォルトの名無しさん
2011/02/07(月) 17:21:00一番最後の0を1にしてみるとか
0385デフォルトの名無しさん
2011/02/10(木) 00:18:55返答ありがとうざいます。
OpenCV自体が非圧縮を読み込みできないみたいでした。
非圧縮で保存できるのに、読み込めないって地雷はひどいw
0386デフォルトの名無しさん
2011/02/10(木) 22:40:07そのバグ前からあるけどimage->imageData += 0x400すれば正しくでるはず
0387デフォルトの名無しさん
2011/02/12(土) 19:58:36AMD環境でもちゃんと動きますか?
0388デフォルトの名無しさん
2011/02/12(土) 20:31:370389デフォルトの名無しさん
2011/02/12(土) 21:15:55ありがとう、安心しました
0390デフォルトの名無しさん
2011/02/17(木) 19:01:45ざっと見たところOpenCVは
ファイルの読み込みは48Bitに対応。
ファイルの書き込みは24Bitまで。
のようですが合ってますか?
で、そうだとして内部処理は48Bitで行なわれているんでしょうか?
もしかしてロードした時点で24Bitに落ちてるのでしょうか?
0391デフォルトの名無しさん
2011/02/18(金) 22:28:37当方学生でプログラミングはほぼ初心者なのですが
画像の解析にopenCV1.1をつかっています。
ハフ変換で画像中の円の検出をしたいのですが
デバッグ後に画像が表示されなくて困ってます
何を質問したらいいかも分からないほどの知識しかなくて申し訳ないのですが
どなたかよろしくお願いします。
0392デフォルトの名無しさん
2011/02/18(金) 22:41:23初心者は特に勝手に省略しないこと
0393デフォルトの名無しさん
2011/02/20(日) 12:47:59.49たとえばTIFFファイルをLoadImageで読むと適切なIplImageが生成されますが、
パイプでやってきたTIFFをIplImageに格納するにはどうしたらいいでしょうか?
CreateImageで生成してからTIFFの中のビットマップ情報を読んで入れていく
という方法をとればできるのはできると思いますが,それだとTIFFデータから
Bitmap情報を取り出すインターフェイスも必要になるので、OpenCVの機能で
できないものかなと。
0394デフォルトの名無しさん
2011/02/20(日) 21:26:04.36OpenCV 2.2 win32のソースを元に話すけど、
highguiモジュールのソースを読むと、
grfmt_tiff.cpp, grfmt_tiff.hppってのが
TIFFのエンコーダー、デコーダーだけど、なんかファイル名を与えて開く方法しかなくて、tif_win32.cってのがそもそも
ファイル名をもらって開くような形になってるだろうから、一旦ファイルを保存して開く以外の簡単な方法はないんじゃないかな。
それか自分でlibtiff叩くしかないような。
BasicImageDecoder::m_buf_supportedが0じゃないいくつかのフォーマットに関してはメモリ上からも開けるみたいだけどね。BMPとか。
0395デフォルトの名無しさん
2011/02/21(月) 01:17:18.98サンクス。最悪tif_win32.cを弄るという手もありますね。
ちなみにBMPをメモリから開く方法について、公式のドキュメントみても
見つけられなかったんですが、参考URLとかあったら教えてください。
0396デフォルトの名無しさん
2011/02/21(月) 09:12:01.28ちなみにエクリプスは3.6.1helionです。
0397デフォルトの名無しさん
2011/02/21(月) 20:26:24.39申し訳ないです。
0398デフォルトの名無しさん
2011/02/22(火) 02:58:33.24C版のインタフェースはわかんないけど。。。
http://opencv.jp/opencv-2svn/cpp/highgui_reading_and_writing_images_and_video.html
の、imdecodeってやつがそうじゃないかなぁ。
0399デフォルトの名無しさん
2011/02/22(火) 05:13:58.18あー!! Cの関数ばかり探してましたが、C++用は違うものがあるんですね。
全く気付きませんでした。これによるとtiffでも読めそうな感じですね。
やってみます。
0400デフォルトの名無しさん
2011/02/22(火) 09:11:17.08遅レスすいません。
ソースは長すぎて貼れませんでした・・・
http://oshiete.goo.ne.jp/qa/4416952.html
ここの回答者のソースコードをコピーして
file nameを自分の読み込みたいファイル名としてビルドしました。
しかしデバックすると
Bad aregument(Bad image header)
in function cvCloneimage,.\caxarray.cpp(3615)
とエラーが返されます。
環境はOpencv1.1pre、VC++2008です。
どなたかご教授よろしくお願いします。
0401デフォルトの名無しさん
2011/02/22(火) 09:44:57.54提示されたリンク先のあなたのソースを見るに
まずCの基礎から学んだ方がいいような雰囲気もあるが……
とりあえずデバッグ実行で何が起こっているか
(何が原因でそのエラーが出るのか)を確認してみたら?
あと,とりあえずこのサンプルにでもあなた画像を読み込ませて
動くことを確認してみてはどうでしょう
ttp://opencv.jp/opencv-1.0.0/document/opencvref_cv_special.html#decl_cvHoughCircles
0402デフォルトの名無しさん
2011/02/22(火) 11:32:30.64いや、残念ながらgrfmt_tiffにはバッファから読む方法は実装されてないので、自前実装の参考にはなるかもしれないけど、使えないと思います。
0403デフォルトの名無しさん
2011/02/22(火) 22:51:13.91質問者は僕ではないです
いやホントにそれは重々承知なんですけどw
1から学びたいくらいおもしろい分野なんですけど
なにぶん残された時間が少なくて・・・残念です・・
とりあえず読み出すファイルをbmpにしてみたら
プログラムは動きました!
誤検出が多すぎでしたけど・・w
こんな初心者のために質問に答えてくださった方
本当にありがとうございました。
またお世話になるかもしれませんがその節はよろしくお願いします。
0404デフォルトの名無しさん
2011/02/25(金) 18:11:24.66付ければ良いのか、、、ヒント頂けないでしょうか、bmpファイル程度は取込みは出来ます。
お願いします。
0405デフォルトの名無しさん
2011/02/27(日) 16:53:10.58まずはGigEカメラから取り込んだ画像を、自作のプログラムでファイルに保存するか
画面に表示するようなものを作ることができるかどうかかな。
それができればOpenCVのIplImage型の変数にコピーしていろいろできると思うが。
0406デフォルトの名無しさん
2011/02/27(日) 20:50:40.51UVCなのにこんな回り道しなきゃいけないのか。
(環境:Win7 64bit VS2008SP1 OpenCV2.2)
俺用メモ:
OpenCV2.2未満用っぽいサンプルを使う場合、
1.#pragmaのcv.lib, cvcore.lib, cvaux.lib, highgui.libは全てコメントアウトする
2.cv.libが必要な場面→opencv_core220d.lib/opencv_core220.libを追加の依存ファイルに
3.highgui.libが必要な場面→opencv_highgui220d.lib/opencv_highgui220.libを追加の依存ファイルに
そして今回ここ↓のページがものすごく役に立ちました。感謝。超感謝です。
俺の通った回り道なんて先人達が踏み分けてくれた開かれた道でしかなかったです。
UVCのカメラ画像をOpenCVで操作(Windows Vista sp1) 涙目ブログ/ウェブリブログ
ttp://t-tlt-t.at.webry.info/200810/article_2.html
EWCLIB
ttp://www.geocities.jp/in_subaru/ewclib/index.html
OpenCV/DirectShowでキャプチャした画像を表示する - 王様の箱庭 Wiki*
ttp://wikiwiki.jp/masayashi/?OpenCV%2FDirectShow%A4%C7%A5%AD%A5%E3%A5%D7%A5%C1%A5%E3%A4%B7%A4%BF%B2%E8%C1%FC%A4%F2%C9%BD%BC%A8%A4%B9%A4%EB
それと2.2からlibの扱いが変わったことについてここ↓のおかげで確認確信できました感謝です。
OpenCV2.1と2.2に見るビルド方法の違い - PukiWiki(AkiWiki)
ttp://tessy.org/wiki/index.php?OpenCV2.1%A4%C82.2%A4%CB%B8%AB%A4%EB%A5%D3%A5%EB%A5%C9%CA%FD%CB%A1%A4%CE%B0%E3%A4%A4
0407デフォルトの名無しさん
2011/02/27(日) 20:59:51.19UVCじゃないドライバ付きのUSBカメラなら↓のサンプルですんなり行ったんです。
(2.2なのでhighgui.lib→opencv_highgui220(d).libの追加は必要でしたけど)
http://opencv.jp/sample/video_io.html#capture
(Windows7)64bit環境で使える安いUSBカメラって大抵UVCなんですね。
UVCじゃないカメラはドライバが32bitしか対応してないし。
安かったUVCカメラを3台買った後、サンプル動かしてwktkからドン底でしたが
これで…もう3台買っといてもいいような気がしてきました。
0408デフォルトの名無しさん
2011/02/28(月) 18:53:30.930409406-407
2011/02/28(月) 22:44:07.07結局USBカメラを4台追加注文しました。
しっかしPCの別系統(って言うのかな)のUSBポートに差さないと640x480の
2台同時表示でも片方のfpsが著しく落ちますね…。
fpsを落とさずに同時に取り込めるのはウチのPCだと3台が限界かなぁ。
USB3.0のポートに差したらOKかもとか淡い期待がないではないですが、
カメラが7台全て届いたら試してみよう。
0410デフォルトの名無しさん
2011/02/28(月) 23:11:49.51よかったら、複数うまくいった型番教えて。
いま、複数カメラに興味ないけど、前は苦労した><
カメラ毎にUSBボード買ったりとか。
0411409
2011/03/01(火) 03:24:33.35UVCなら何でもいいような気もするけど俺が使ってるのは↓です。
俺が確認したのはカメラ2台までで3台以上はまだ試してないです。
WEBカメラ(小型USBカメラ・130万画素・一発接続・ブルー) 400-CMS005BL 【サンワダイレクト】:400-CMS005BL_O
http://direct.sanwa.co.jp/ItemPage/400-CMS005BL_O
カメラ毎にUSBボードとは大変でしたね…。
ただ今でもなお(認識の問題は別にしても)多数のカメラで
速度を出したいときにはボードが必要になるかもしれませんね。
追記:
昨日まで何の問題もなく動いていたプログラムが
突如cvCopyでエラーを出すようになった…。
再起動してもダメ。デバイスマネージャ上で認識はされてる。
結局、原因は不明のままだけどMS Expression Encoder4で
USBカメラをソースに指定して取り込みを試した(うまくいった)後、
プログラムを実行させたら問題なく動いた。なんだったんだろう…。
0412デフォルトの名無しさん
2011/03/01(火) 17:32:16.06コピー元よりコピー先のサイズが小さかったりするとエラー出た気がするけどそれじゃないの?
0413デフォルトの名無しさん
2011/03/01(火) 18:48:38.32ありがと。
安くて遊べそうなカメラですね。
0414411
2011/03/01(火) 22:58:13.25レスありがとうございます。
そうみたいです。cvCopy()の中のMat::copyTo()の中のmemcpy()でエラーです。
memcpy()の第1・第2引数は非NULLで第3引数は921600(=640x480x3)なので
領域越えてるみたいですね。
しかしまったく同じプログラムをExpression Enocderを使用後に
実行するとエラーを吐かないという現象は…EEの使用でたまたま都合のいい値が
デバイス(ドライバ?)にセットされたか何かかな。
プログラムが偶然に頼っているのはまずいから原因さがしてるけどcvCopy()に与えた
IplImage*はどちらも正しくimageSize=921600。うーんもし何かわかったら報告します。
0415デフォルトの名無しさん
2011/03/05(土) 21:20:33.93普通のWindows環境なら、メモリの管理ページを超えないと落ちない
管理ページ内のバッファオーバーなら、そのページ内でメモリを壊しながら動き続ける
壊したメモリの値がおかしくなって挙動が変になる場合もあるがw
つまり同じプログラムでも、その呼び出しの前後関係によっては
メモリ管理の状況が変わるから落ちたり動いたりしてるだけ
…メモリのバッファオーバーのバグを直せば良いだけだがw
0416デフォルトの名無しさん
2011/03/06(日) 19:13:06.60バグがあるんだかなんだかうまく動作しないよね。
なので外部ライブラリ上にあるようなewclib
の他に
VideoInput Library
ttp://www.atinfinity.info/wiki/index.php?OpenCV/videoInput%20Library%E3%81%AB%E3%82%88%E3%82%8B%E3%83%93%E3%83%87%E3%82%AA%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3
VideoMan Library
http://videomanlib.sourceforge.net/
等を使用することをおすすめする。
0417デフォルトの名無しさん
2011/03/07(月) 02:27:08.82Videoinput Library は現在のWindows版OpenCVでは
そもそも標準採用なので
わざわざ別のをリンクしないように注意
0418デフォルトの名無しさん
2011/03/07(月) 10:23:54.85Videoinput LibraryってOpenCV上からだと使えない関数があったような。
デバイス名取得とかってOpenCVでも出来たっけ?
0419デフォルトの名無しさん
2011/03/07(月) 11:47:05.69純粋にOpenCV上からではVideoinput Library が仮想関数の向こうに隠されているので出来ません
こっそりとヘッダは入っているので、私はincludeしてWindows機種依存の形で直接使いました
0420デフォルトの名無しさん
2011/03/07(月) 15:33:42.41そうなんだ!
別のリンクして使ってたよー( ̄□ ̄;)
0421デフォルトの名無しさん
2011/03/15(火) 22:02:53.94ターミナルから実行すると、端末の画面の方に文字が入力されてしまいます。
ウィンドウがそれを読み取ってくれないという感じです。
コンパイルエラーなどはなく、cvWaitKey(100)などとすると
ちゃんと100ms後に次に進むので、関数自体はきちんと動作しています。
考えられる原因は何でしょうか?
Mac OSX 10.5.8、Xcode 3.1.4、OpenCV 2.2
ここの1.画像表示のソースをビルドしています。
ttp://www.aianet.ne.jp/~asada/prog_doc/opencv/opencv_img_enh.htm
画像表示まではうまくいっています。OSX固有の問題なのでしょうか?
0422デフォルトの名無しさん
2011/03/15(火) 23:03:51.210423デフォルトの名無しさん
2011/03/16(水) 00:38:01.16どんなに画像のウィンドウをクリックしても、端末がアクティブのままになっているようです。
逆に、画像以外のウィンドウをクリックしても、画像のタイトルバーに色が付いたままです。
ウィンドウ作成関連で何かミスってるんですかね?
0424デフォルトの名無しさん
2011/03/16(水) 01:43:10.15恐らくアプリケーションバンドルにしないとイベントを処理してくれないと思われる。
実行ファイル名がappnameだとして
appname.app/Contents/MacOS/
のようなフォルダ階層を用意して
そこにappnameを配置すればいけると思う。
0425デフォルトの名無しさん
2011/03/16(水) 02:26:22.79ありがとうございます!
おそらく本来は、そのような配置にしたあとappname.appを実行するのだと思いますが
それでは起動できず(一瞬Dockが膨らんで終わる)、
MacOSの中に移したappnameの方を実行するときちんと動作しました。
あるいはそれで正しいのか、なんだか釈然としませんが
ひとまず先へ進めそうです。本当にありがとうございました。
0426デフォルトの名無しさん
2011/03/31(木) 05:13:32.33cvHaarDetectObjects()
cvReleaseHaarClassifierCascade()
の2つの関数でなぜかエラーが起きてしまいます。
エラー内容は以下の通りで
"_cvHaarDetectObjects", referenced from:
_main in 顔画像認識サンプル.o
"_cvReleaseHaarClassifierCascade", referenced from:
_main in 顔画像認識サンプル.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
プログラムは以下のサイトを参考にしました。
ttp://gihyo.jp/dev/feature/01/opencv/0003?page=3
環境はMacOSX(10.6.6) ・Opencv2.2・Xcodeを使っています。
Windows7・Opencv2.2・VS2010でこのサイトのプログラムをコピペしてビルドすると、上手く動作しました。
どなたか解決策をご存知ないでしょうか?
0427デフォルトの名無しさん
2011/03/31(木) 10:31:14.52必要なものをリンクしてないだけでは。
0429デフォルトの名無しさん
2011/04/02(土) 01:55:51.03なので、.dllの入っているところを片っ端からpathに突っ込んでも出来ませんでした。
環境変数を変える以外になにかやることはあるのでしょうか。
環境はWindows7-64bit,OpenCV2.2,VisualStudio2010EEです。
0430デフォルトの名無しさん
2011/04/02(土) 04:51:10.68リブート
0431デフォルトの名無しさん
2011/04/02(土) 08:40:28.94VisualStudioだけ起動しなおせば大丈夫な気がする。
0432デフォルトの名無しさん
2011/04/02(土) 14:48:28.45いちいち Mat_ にするのは面倒だ
0434429
2011/04/03(日) 02:21:10.81内蔵しているカメラの映像をcvCaptureFromCAM関数で取得しようとしたのですが
映像を取得してくれません。このカメラはデバイスマネージャにはちゃんと
認識されていて、また、他の映像出力系のプログラムはデバイスマネージャには
見つかりませんでした。関数の因数も0,-1,200と試してみましたがどれも
失敗に終わりました。また、別のUSBカメラでもやってみたところ、同じく
映像が取得されませんでした。ちなみに、実行してるプログラムのソース
は参考書に載っているのを丸写ししただけなので間違いはないと思います。
この場合はまだ、OpenCVにカメラを認識させるなにかのプログラムが必要なのでしょうか
0435デフォルトの名無しさん
2011/04/03(日) 04:42:14.88デバイスマネージャ上のイメージングデバイスは何と表示されてます?
内蔵カメラでUVCというのがあるのかどうかはわかりませんが、一応可能性のひとつとして。
0436435
2011/04/03(日) 04:46:42.43問題の切り分けとしてUVC云々が原因ではないといえそうですね。
0437429
2011/04/03(日) 13:31:16.74Sony Visual Communication Cameraと書いてあるだけで、SonyのHPで調べても
Webカメラ ≪MOTION EYE≫ とだけ書いてありました。また、調べてみても
普通ならPCGA-UVC***みたいにデバイスマネージャに書かれるみたいです。
>>436
今手元に接続してたUSBカメラがないのでうろ覚えですが、
調べてみたところ下記のサイトにあるC?00台のやつっぽい形なので多分UVCは
対応してるみたいです。
なので>>406に書かれているHPの通りにやってみたいと思います。
UVC対応Webカメラ2010【ロジクール】-winとMacでwebカメラ
http://marble-papa.cocolog-nifty.com/blog/2010/01/2010-uvcweb-bca.html
ありがとうございました。長文失礼しました。
0438429
2011/04/03(日) 13:34:06.76うろ覚えのUSBカメラは1.3-MP Webcam のC?00っぽいということです。
0439デフォルトの名無しさん
2011/04/08(金) 01:04:08.42OpenCV2.2を64bit,TBBとIPPを一緒に使おうとしています。
OSはWindows7、IPPはバージョン7のビルド3、開発環境はVisualStudio2010です。
ttp://kaushalsolanki.com/2011/01/compile-and-set-up-opencv-for-visual-studio-2010-with-64-bits-support-ipp-7-0-and-tbb/
↑を参考にしてビルドしてみたところ、一通りlibとdllを作成できました。
この状態で、IPPはopenCVから呼び出しできるようになっているのでしょうか?
Hello World に cvGetModuleInfo を追記して実行したところ、
第二引数(version)には cxcore: 2.2.0
第三引数(loaded_addon_plugins)には 空文字
となりました。
これはインストール失敗またはVisualStudioの設定ミスでしょうか?
Hello World のインクルードディレクトリや追加の依存ファイルにはIPPのパス
やlibを設定、
環境変数PATHにもIPPとopenCVのdllへのパスを設定済みです。
ご助言よろしくお願いします。
0440デフォルトの名無しさん
2011/04/14(木) 11:42:37.500441デフォルトの名無しさん
2011/04/14(木) 11:51:22.140442デフォルトの名無しさん
2011/04/14(木) 13:13:10.960443デフォルトの名無しさん
2011/04/14(木) 14:41:15.250444デフォルトの名無しさん
2011/04/14(木) 18:02:12.82FindContoursで抽出した輪郭から、二値化した黒枠の内側のみを抽出したい場合はどのようにしたら良いのでしょうか?
サンプルを見るとApproxPolyを使っているのがありますが、5番目のパラメータの「近似精度」とは具体的にどんな精度なのでしょうか?
http://opencv.jp/opencv-1.0.0/document/opencvref_cv_contours.html
すいませんが、よろしくお願いします。
0445444
2011/04/15(金) 13:31:20.44CV_RETR_CCOMPで良かったのね
http://imagingsolution.blog107.fc2.com/blog-entry-202.html
http://playwithopencv.blogspot.com/2010/06/blog-post.html
0446444
2011/04/15(金) 13:47:11.47CV_RETR_LISTで輪郭を全部抽出して、2値化してるし隣接する画素を参照して確認したほうが良いのか
個人的な独り言になってすまんかった
0447デフォルトの名無しさん
2011/04/18(月) 19:04:10.710448デフォルトの名無しさん
2011/04/19(火) 09:35:36.63ヒント:御用学者は原発だけじゃない
0449デフォルトの名無しさん
2011/04/19(火) 23:25:42.01初心者向けの日本語の資料ありませんか?環境は2.2+VisualC++2010で
0450デフォルトの名無しさん
2011/04/20(水) 01:00:28.74毎フレーム顔認識の機能を使うとリアルタイムでは出来そうにはないんだけど、
一回だけ認識してあとは、物体追跡でやったら、リアルタイムでできる
ものでしょうか、それとも他に方法ってあるんでしょうか?
よろしくおねがいします
0452デフォルトの名無しさん
2011/04/22(金) 21:02:18.510453デフォルトの名無しさん
2011/04/24(日) 20:50:25.070454デフォルトの名無しさん
2011/04/30(土) 03:06:41.11下に挙げた処理が使えれば素晴らしいです。
やっぱりおとなしくMILやHALCONを使えってことになるんでしょうか。
モルフォロジー処理 粒子解析処理 パターンマッチング処理
極座標変換処理 バーコード読み取り(できれば) OCR(できれば)
その他基本的な処理(エッジ抽出・2値化・プロファイル演算)
0455デフォルトの名無しさん
2011/04/30(土) 08:18:40.77OpenCVのいくつかの技術は特許が取られているので、商用に利用する際は別途許諾を得るか、
特許が取られている機能を避け必要があるので気をつけてくだされ。
0456454
2011/04/30(土) 10:13:38.52そこらへん、キチンとケアしないとだめですね。
0457デフォルトの名無しさん
2011/04/30(土) 11:56:28.76どっちができることが多いでしょうか?
0458デフォルトの名無しさん
2011/04/30(土) 12:15:31.410459デフォルトの名無しさん
2011/04/30(土) 12:36:54.140460デフォルトの名無しさん
2011/05/15(日) 00:47:35.330461デフォルトの名無しさん
2011/05/19(木) 12:13:28.08環境はVista,Visual Studio2008Express Editionです。
OpenCV2.1をインストールして、
環境変数PathにC:OpenCV2.1\binを追加。
VisualStudioのツールでインクルード&ライブラリファイル追加。
プロジェクトのプロパティでリンカ→入力で必要なライブラリを追加。
しました。
試しに新たなプロジェクトでsampleのdft.cをコンパイルして実行すると
下記のようなエラーでうまく動作しません…
これは何が原因なのでしょうか?
スレッド 'Win32 スレッド' (0x16c4) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x1560) はコード -1 (0xffffffff) で終了しました。
プログラム '[5944] ファイル名.exe: ネイティブ' はコード -1 (0xffffffff) で終了しました。
0462デフォルトの名無しさん
2011/05/19(木) 17:13:19.62ソース2秒も見たら終了コードが-1になるケースは限られてるのがわかると思うけど。
0463デフォルトの名無しさん
2011/05/19(木) 18:44:15.070464デフォルトの名無しさん
2011/05/19(木) 21:38:48.740465デフォルトの名無しさん
2011/05/19(木) 23:18:16.720466デフォルトの名無しさん
2011/05/20(金) 10:49:16.99cvGetCapturePropertyのCV_CAP_PROP_FPSを使用していますが、
30fpsくらいなら正常に取得出来るのですが、180fpsになると0.08とか全然違う値になってしまいます。
よろしくお願いします。
0467デフォルトの名無しさん
2011/05/22(日) 15:49:46.30で、解決したのかい。
0468デフォルトの名無しさん
2011/05/22(日) 16:13:29.580469デフォルトの名無しさん
2011/05/23(月) 08:19:26.200470466
2011/05/23(月) 12:42:09.99zipで圧縮しましたが、それでも186MBあります。
ダウンロードパスワードは「cv」です。
よろしくお願いします。
http://www1.axfc.net/uploader/B/so/85159.zip
0471デフォルトの名無しさん
2011/05/23(月) 18:33:39.020.0833...になるね。対応してないのかな?フレーム数900は確認できたけど、再生ソフトだと4秒になるよ?
0472デフォルトの名無しさん
2011/05/23(月) 21:52:36.860473デフォルトの名無しさん
2011/05/23(月) 22:46:05.66可変じゃないなら事前に調べればいいだけだし
0474466
2011/05/23(月) 23:28:14.07再生ソフトの秒表示が端数切捨てってことは無いでしょうか?
fpsはやっぱりおかしいですよね。
>>472
とりあえず、オープンそのものは失敗にはなっていないです。
>>473
fpsは解像度やシャッタースピード等で可変になるんで、fpsを取得する必要があるんです。
最悪、一度再生して再生時間を計測するとかしないといけないのかな。
0475デフォルトの名無しさん
2011/05/23(月) 23:43:11.84Mac OpenCV 2.2.0 で試したところ150になったよ
画像自体は読めていたけどfpsはうまくいかないみたい
0476デフォルトの名無しさん
2011/05/23(月) 23:49:34.82XP OpenCVは2.2 ffmpeg.exeは29958。
0477デフォルトの名無しさん
2011/05/24(火) 00:00:54.85openCVのバージョンとオープンしてる関数はなんですか?cvCaptureFromAVI?
やってみたけどNULLを返すんだけどなぁ...
openCV1.1で追ってみるとCvCaptureAVI_VFW::open()のAVIStreamGetFrameOpenが失敗してるっぽいけど
ためしに&bmihをNULLに置き換えてみたら181.25を返した(windows7)
2.2はコンパイルする環境作ってないけどソース見た感じにおんなじような
0478466
2011/05/24(火) 10:44:17.20Macだと150ですか・・・近いですが少し微妙な値ですね。
フレームの取得(画像サイズ等)は出来るのですが、上手く動作しない感じです。
>>476
ファイルのプロパティやWindowsMediaPlayerでも情報は正確に取れているのですよね。
この違いは何でしょう?
>>477
OpenCVは2.1を使用していましたが、2.2にしても同じ結果でした。
オープンしている関数はcvCaptureFromFileです。
それをOpenCvSharpで使用しています。(OpenCvCharpには、FromFileとFromCameraしか無いので)
http://coderepos.org/share/browser/lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CvCapture.cpp?rev=26033
OpenCvSharpのソースを見るとファイルの有無しか確認していないので、そのまま通っているようですね。
フレーム数やWidth・Heightは正確に取れている辺りが物凄く謎ですが。
0479デフォルトの名無しさん
2011/05/24(火) 14:26:06.84openCVにしろOpenCvSharpにしろソースあるんだから、追っかけていけば謎は解けるんじゃないの
0480デフォルトの名無しさん
2011/05/24(火) 16:30:40.450481466
2011/05/24(火) 17:37:51.13http://www.milk-garden.net/blog/?p=356
とりあえずこれで取得してみて、ダメなら>>477さんのようにソースを修正してみます。
皆さんありがとうございました。
0482466
2011/05/25(水) 17:57:52.25MediaPlayerを使って動画の時間を取得してみたけど、やっぱり30fpsを超えると取得出来なかった。
鬼門なのかな。
axWindowsMediaPlayer1.mediaCollection.add(axWindowsMediaPlayer1.URL);
double dblTime = axWindowsMediaPlayer1.Ctlcontrols.currentItem.duration;
0483デフォルトの名無しさん
2011/05/26(木) 09:08:44.77>なのかな。
とか、マジキモイw
0484466
2011/05/26(木) 10:48:46.04キモついでに自分用メモ追加するw
cvSetCapturePropertyからCV_CAP_PROP_POS_FRAMESで最終フレームに移動して、
録画時間取得してフレーム数で割ったら簡単に出来た。
0485デフォルトの名無しさん
2011/05/26(木) 13:20:16.310486デフォルトの名無しさん
2011/05/26(木) 14:26:07.04中部大の藤吉先生、広島大の栗田先生の講演中継あるよ
0487デフォルトの名無しさん
2011/05/29(日) 13:49:24.920488デフォルトの名無しさん
2011/05/31(火) 20:58:56.840489デフォルトの名無しさん
2011/05/31(火) 22:57:55.33模索しています。
たとえば、顔の画像の目の部分や口の部分だけを自然な形で
拡大するようなシーンを想定しています。
OpenCVのAPIでこういった変換に耐えうるものは
ありますか?
0490デフォルトの名無しさん
2011/06/01(水) 00:04:04.10変換に耐えうるってのも、主観的すぎてなんとも言えないわな。
0491デフォルトの名無しさん
2011/06/01(水) 04:42:34.01自然な形ってのをぬいた関数はあるんでしょうか?
それこそカメラの前にかざした手だけを拡大したり,目の部分だけを拡大したり
0492デフォルトの名無しさん
2011/06/01(水) 04:43:36.800493デフォルトの名無しさん
2011/06/01(水) 07:48:15.45「形を認識する」「そう判断するに至った領域を判別する」「範囲内で指定領域のみを切り出す」「なんらかのアルゴリズムで拡大する」
はすべて別物として考えて下さい
1,3,4は単純な処理としてはOpenCVでの得意分野です
画像認識は、現在のものはアウトラインや特徴点などで判別している関係上、2のどれが内側かってのは難しいですね
0494デフォルトの名無しさん
2011/06/01(水) 08:36:10.66つ 美人フィルタ
微分を使っているということなので、PDE関連の論文をあたったら?
0495デフォルトの名無しさん
2011/06/01(水) 10:45:31.40内側と外側の判別はある程度の座標を決めて、その中でも結局近くの画素から判別するしか無いと思う
0496デフォルトの名無しさん
2011/06/01(水) 14:44:43.74もしかして超解像がやりたいのか?
0497デフォルトの名無しさん
2011/06/01(水) 19:51:26.090498デフォルトの名無しさん
2011/06/01(水) 20:27:13.74情報が少な過ぎるよ
0499デフォルトの名無しさん
2011/06/01(水) 20:35:18.880500デフォルトの名無しさん
2011/06/02(木) 00:27:05.180501デフォルトの名無しさん
2011/06/02(木) 07:27:41.170502デフォルトの名無しさん
2011/06/02(木) 07:30:21.25まず服を脱ぎます
0503デフォルトの名無しさん
2011/06/02(木) 07:32:48.74なんでOpenCVなの?
0504デフォルトの名無しさん
2011/06/02(木) 09:03:07.31画像処理系のことで何かやりたい、と教授に言ってしまったからです
opencv使ってなんかやれと言われたので、とりあえずインスコしてサンプルは走らせたとこなんですが、やるネタが思いつかないんですよ
0505デフォルトの名無しさん
2011/06/02(木) 09:33:15.22ネコの画像10000枚を学習させて写真の中のメコを検出するプログラム
0506デフォルトの名無しさん
2011/06/02(木) 10:15:59.79教授室の前にWebカメラ設置して、訪問者が男なら鍵をかけ、女なら解錠し、さらに美人なら自動でドアを開けるプログラム
もしくは、教授室の前を通る人間を判別して、美人のみを撮影するプログラム
0507デフォルトの名無しさん
2011/06/02(木) 17:27:10.200508デフォルトの名無しさん
2011/06/02(木) 17:31:55.20道路を通過した自動車を認識して、交通量を測定する
この間ひさしぶりに交差点で手動でカウントしてる人を見て
こんなの自動化できるだろーって思った
0509デフォルトの名無しさん
2011/06/02(木) 17:46:30.770510デフォルトの名無しさん
2011/06/02(木) 17:58:06.930511デフォルトの名無しさん
2011/06/02(木) 23:30:11.380512504
2011/06/03(金) 00:06:59.57たしかに学習させてなにかを判別するっていうのは面白そうですね簡単にできそうですし
美人判定なら顔がいかに左右対称ってのと人の顔の平均に近いかってかんじですかね
交通量測定面白そうですね これにするかもしれないです
新しいことやりたいですけど案が思いつかなかったんで・・・
0513デフォルトの名無しさん
2011/06/03(金) 10:31:59.66交通量を測定するなら、最低でも車種の選別と時間別の計測くらいは入れておけよ
論文書くなら、ナンバープレートをいかに遠くのカメラから正確に読み取るかで、新しい手法見つけりゃ特許まで取れるかもしれん
まー大抵の鮮鋭化手法は確立されてるから、かなり厳しいが
リアルタイムで遠距離や画像ボケによる失われた情報を復元するくらいのこと出来れば、教授から褒めて貰えるぞ
0514デフォルトの名無しさん
2011/06/03(金) 11:01:58.32研究と開発を分けてかんがえろよ
研究しろ
0515デフォルトの名無しさん
2011/06/04(土) 08:21:51.550516デフォルトの名無しさん
2011/06/04(土) 09:36:34.500517504
2011/06/04(土) 09:51:22.48交通量測定ならたしかに車種の判定とナンバープレートとかはできそうですね
レスしてくれた方色々参考になりましたありがとうございました
トラックに隠れる車は交通量だけならカメラ複数or上方からの撮影でいけそうですね
隠れる車のナンバープレート判定なら難しそうですがこれは目視でもできないので仕方なさそうですね
0518デフォルトの名無しさん
2011/06/04(土) 09:55:42.86交通量測定の話からずれてる.ナンバープレートを認識,識別する作業は必要か?
安いフリーターやとって手軽にやってる交通量測定で上方カメラ設置できるのか?
サーベイもせずに2ちゃんでアイデアどうこうしようなんて研究向いてないよ
0519デフォルトの名無しさん
2011/06/04(土) 10:34:34.50出遅れた
ヒヨコのオスメス判別
0520デフォルトの名無しさん
2011/06/04(土) 13:28:45.27長期間の測定なら上方カメラ設置も出来るかも。
0521デフォルトの名無しさん
2011/06/04(土) 14:35:54.11出来ることを一つずつ積み重ねるのがよいよ。ま、考えるの自由だが。
0522デフォルトの名無しさん
2011/06/04(土) 20:11:51.960523デフォルトの名無しさん
2011/06/06(月) 09:28:09.190524デフォルトの名無しさん
2011/06/06(月) 13:33:35.36むり
0525デフォルトの名無しさん
2011/06/07(火) 00:57:46.10画像だけイケメンになって何の得になるというのかね
0526デフォルトの名無しさん
2011/06/07(火) 22:55:47.290527デフォルトの名無しさん
2011/06/08(水) 00:33:02.700528デフォルトの名無しさん
2011/06/08(水) 15:00:15.130529デフォルトの名無しさん
2011/06/08(水) 16:01:46.42特徴点検出→特徴点対応→貼りつけだと思うが
ただ貼りつけるだけになってしまって、画像が重なって表示される
改善する方法ない??
0530デフォルトの名無しさん
2011/06/08(水) 16:11:23.120531デフォルトの名無しさん
2011/06/08(水) 22:55:43.24マクロがあると聞いたような。
0532デフォルトの名無しさん
2011/06/09(木) 11:00:09.15リアルタイムで処理出来れば、スカイプ程度なら人気者
0533デフォルトの名無しさん
2011/06/09(木) 11:54:05.02課題ではないよ。
研究の基礎になるんだけど、そこができずに早速詰まってる。
0534デフォルトの名無しさん
2011/06/09(木) 22:16:37.93ホームページとか論文でもいいけど。
0535デフォルトの名無しさん
2011/06/10(金) 00:25:15.35とかでググると論文ぽいのも出てくるみたいだけど?
0536デフォルトの名無しさん
2011/06/10(金) 09:35:14.77どこで見たか忘れたがミジンコの"全焦点"画像のデモには感動したな
0537デフォルトの名無しさん
2011/06/10(金) 17:55:20.28輪郭を抽出して、その面積はcvContourAreaで求められるのですが、
輪郭の平均輝度を求める方法はありますでしょうか?
0538デフォルトの名無しさん
2011/06/10(金) 21:05:15.570539デフォルトの名無しさん
2011/06/13(月) 10:06:23.030541デフォルトの名無しさん
2011/06/15(水) 22:26:43.900542デフォルトの名無しさん
2011/06/15(水) 22:48:23.510543デフォルトの名無しさん
2011/06/16(木) 00:01:24.47だいたい分かるけど・・・
凸包できますかね?
0544デフォルトの名無しさん
2011/06/16(木) 00:17:35.28リファレンスって知ってる?
0545デフォルトの名無しさん
2011/06/16(木) 01:03:30.84543ですが、日本語がちょっとおかしかったです。
凸包を点線で描写したいんですが、できますか?
0546デフォルトの名無しさん
2011/06/16(木) 07:38:26.74どうすれば1画素ずつスキャンできますか?
0547デフォルトの名無しさん
2011/06/16(木) 09:56:16.07>>528
0548デフォルトの名無しさん
2011/06/17(金) 00:04:35.92カメラの画像等で、背景が黒系で、白塗りの円を数十個マークしてある状態で、
このマークの数をカウントするアルゴリズム考えています。
工場のラインで、マーキングしてあるモノを数えるイメージ?
私としては、マークは定型なので、円を検出してカウントしようかなと考えているのですが、
その手法としてハフ変換というものを用いるらしいんですが、結構処理が大変っぽいらしいので
たぶんそんなに厳密にやらなくても円を検出してくれると思うんですが、処理速度が速くて、
良い方法ありませんか。
なるべく処理速度が速いアルゴリズムにしたいです。
0549名無し募集中。。。
2011/06/17(金) 01:35:18.010550デフォルトの名無しさん
2011/06/17(金) 10:23:04.82で、良いんじゃね?
0551デフォルトの名無しさん
2011/06/17(金) 22:30:38.05SurfMatch2_1.cpp matcher.match(descriptors1,matches);のところでエラーが出てしまいます
エラーは長いので次に書きます
開発環境はVS2010、OpenCV2.2です よろしくお願いします
0552デフォルトの名無しさん
2011/06/17(金) 22:33:19.74error C2664: 'void cv::DescriptorMatcher::match(const cv::Mat &,std::vector<_Ty> &,const std::vector<cv::Mat> &)' : 2 番目の引数を 'std::vector<_Ty>' から 'std::vector<_Ty> &' に変換できません。
0553デフォルトの名無しさん
2011/06/18(土) 09:21:19.280554デフォルトの名無しさん
2011/06/18(土) 14:40:16.340555デフォルトの名無しさん
2011/06/18(土) 23:46:56.10TCP/IP プロトコルで送られてきた、エレコムのUSBカメラで撮影したデータなのですが
cvShowImage関数を使って表示しようとすると、
「opencvClient.exe の 0x1007356e (cxcore200d.dll) でハンドルされていない例外が発生しました: ・・・・」
デバッグでステップインすると
cxcopy.cpp のstatic void flipVert( const Mat& srcmat, Mat& dstmat )関数の部分で
int t1 = ((int*)(src1 + i))[0];
src1 が空です。src1 は符号無しのchar 型のポインタ変数で
const uchar* src1 = src + (size.height - 1)*srcstep; このように定義されています。
const uchar* src = srcmat.data;
関連するsrc 変数はsrcmatという構造体のdataを指しています、ゆえに
この部分でsrc1 の値が入っていないので、アクセスバイオレーションが発生しています。
カメラが壊れて、データが壊れているのでしょうか?
環境 Openv2.0 & VS10
0556デフォルトの名無しさん
2011/06/19(日) 00:26:26.000557デフォルトの名無しさん
2011/06/19(日) 00:39:22.110558555
2011/06/19(日) 01:10:15.60このサイトを参考にC++ に移植して(クラス化)して、実装したのですが
今、試しに、コピペでコンパイルしましたが、やはり、同じところでエラーが出ます。
どなたか、このサイトのコードをコピペでコンパイルして、USBカメラを、繋げて
実行できるかどうか試して頂けないでしょうか・・・・_(^^)_
ttp://cv.nextfoods.jp/index.php?opencv%2Fsample%2Fstreaming
0559デフォルトの名無しさん
2011/06/19(日) 09:08:31.88通信部分全部取っ払って、カメラのデータをそのまま表示してみりゃカメラが壊れてるかどうかなんてわかるんだろ
0560デフォルトの名無しさん
2011/06/20(月) 10:28:13.26静止画を突っ込んで見るとか
src1の元にデータは入っているのかとか
見ればわかりそうだけどもな
0561デフォルトの名無しさん
2011/06/21(火) 00:48:20.32FPGA化するかもしれないので。
0562デフォルトの名無しさん
2011/06/21(火) 09:19:47.300563デフォルトの名無しさん
2011/06/25(土) 20:28:32.48Visual Studio pro 2010
OpenCV2.0
マルチスレッド (/MT)
このような環境で、リリースビルドでコンパイルしてできた実行ファイルを、配布したいのですが
OpenCV2.0のDLL の入っていない環境で実行すると当然
「highgui200.dllが見つからなかったため、このアプリケーションは開始できませんでした。」
エラーが出ます。
コンパイルオプションや、ビルドスイッチの設定で回避する方法があれば教えていただきたいのですが。
0564デフォルトの名無しさん
2011/06/25(土) 21:18:06.960565デフォルトの名無しさん
2011/06/25(土) 21:18:42.18OpenCVをスタティックリンクライブラリ化しないと、実行ファイルだけ配っては無理。
ttp://www.chino-js.com/ja/tech/opencv/static-link/
実行ファイルと同じ場所に highgui200.dll 他をコピーすれば実行できたと思いますが、普通に一緒に配布するではダメなの?
OpenCVを使っている事を明記しておけば、問題ないと思いますが・・・。
0566デフォルトの名無しさん
2011/06/25(土) 22:15:24.26>>563です
ありがとうございます、紹介して頂いたサイトを見て、自分の環境でも行えるように
して見たいと思いましたが、簡単にできそうもないので、DLLも一緒に配布したいと
思います。
0567デフォルトの名無しさん
2011/06/26(日) 12:06:15.59休みなので、スタティックリンクライブラリ化にチャレンジしてみるのですが
ライブラリイの出力先を、何処で指定するのでしょうか?
紹介して頂いた、サイトでは普通に、以下のような感じで、設定し、ビルドすると
[アクティブ ソリューション構成] ドロップダウンリストから、 「<新規作成...>」を選択しますと、[新しいソリューション構成] というダイアログが
表示されますので、[名前] に Release_Static と入力し、[設定のコピー元] から Release を選択します。
[新しいプロジェクト構成を作成する] チェックボクスはオンにします。これで [OK] ボタンを押します。
cv.lib C:\OpenCV\_make\release_static\
このように、出来上がっているようなのですが、自分の環境では上手く行きません?
現在の環境は
VC8
OpenCV2.0
です。
0568デフォルトの名無しさん
2011/06/26(日) 13:13:22.67です
構成プロパティ→C/C++→全般→出力ディレクトリでできました
0569デフォルトの名無しさん
2011/06/26(日) 14:15:07.75何かの時は参考にさせてもらうのぜ
0570デフォルトの名無しさん
2011/06/26(日) 23:11:56.73ここで質問させていただきます
パーティクルフィルタを実装しようとして、cvConDensation構造体を用いたプログラムをコンパイルしたところ
「'cvConDensation' : 定義されていない識別子です。」というエラーが出てしまうのですが、
OpenCV2.2にはcvConDensationは定義されていないのでしょうか?
環境は
Windows7
Visual C++ 2010 Express
OpenCV2.2
です
ご存じの方、よろしくお願いします
0571デフォルトの名無しさん
2011/06/26(日) 23:25:54.080572デフォルトの名無しさん
2011/06/26(日) 23:30:57.38ありがとうございます
opencv.hppをインクルードすれば、すべてのヘッダファイルが読み込まれるものだと
思っていたのですが、他にも読み込むファイルが必要なのでしょうか?
0573デフォルトの名無しさん
2011/07/05(火) 14:06:17.75http://opencv.jp/opencv2-x-tips/changelog_from_22
0574デフォルトの名無しさん
2011/07/05(火) 23:51:43.240575デフォルトの名無しさん
2011/07/06(水) 00:00:48.340576デフォルトの名無しさん
2011/07/06(水) 22:20:21.570577デフォルトの名無しさん
2011/07/14(木) 22:44:13.28教えてもらえませんか。また、ffmpeg のライブラリでカメラから撮影したデータをavi とかflv にエンコーディングは
できないでしょうか?
0578デフォルトの名無しさん
2011/07/15(金) 02:59:09.42根本から間違いすぎてる
OpenCVは何を使って動画を読んだか書いたかとか気にしないでいいように存在してる
古いやつには不具合はあれどそもそも標準で読み書きに対応してんだからそのままやればいい
他の手段を捨ててなぜかffmpegにこだわっての使い方限定なら多分スレ違い
そもそも何故2.0限定なんだろう
0579デフォルトの名無しさん
2011/07/15(金) 03:22:28.63自分の書いた文章を書き込んでから読み直したらひどかった、正直すまんかった
標準のcvCaptureうにゅうにゅは環境で勝手に読み込み方法を切り替えちゃうね
0580デフォルトの名無しさん
2011/07/15(金) 07:41:33.23なんかどうでもいいところでハマってしまって「無駄に迂回してるだけなんじゃ」
と思ってしまうんだよね。なんというかできそうでできないことが多い。
0581デフォルトの名無しさん
2011/07/16(土) 23:43:18.860582デフォルトの名無しさん
2011/07/17(日) 01:50:52.36cv::VideoWriter writer;
IplImage *query = NULL;
CvCapture *capo = cvCaptureFromAVI("newpart3.avi");
writer.open("outpart2.avi", CV_FOURCC('M','P','G','4'),29.97, cv::Size(720, 480));
while((query = cvQueryFrame(capo)) != NULL)
{
writer << query;
}
ソースはこんな感じで、outpart2.aviにはヘッダ情報のみしかない雰囲気です。
どなたかエスパーできる方いらっしゃいませんか?
0583デフォルトの名無しさん
2011/07/17(日) 06:48:31.62fourccを "avc1", "png " に変えて試してみろ
0584デフォルトの名無しさん
2011/07/18(月) 16:48:53.53うまくいきました!!ありがとうございますm(_ _)m
0585デフォルトの名無しさん
2011/07/21(木) 09:07:44.52showSettingsWindow()で設定ダイアログが出せるのですが
videoInputでは
・設定ダイアログを現在出しているかを判断
・設定ダイアログダイアログを閉じる
方法が提供されていません.
これらを行う良い方法はありませんか?
0586デフォルトの名無しさん
2011/07/21(木) 18:06:23.730587デフォルトの名無しさん
2011/07/27(水) 17:49:09.96パノラマ画像の生成について調べてたんですが、SURFは特許が絡んでるとの事。
代替の特徴量抽出で使えそうなものって何かありますか?
0588デフォルトの名無しさん
2011/07/27(水) 23:01:27.980589デフォルトの名無しさん
2011/07/28(木) 11:22:51.55カメラ行列Aと歪係数Dを用いて,
(1)校正に用いたチェスボードを撮影したカメラ画像をcvUndistort2()した画像に,
(2)(1)の画像のチェスコーナー点座標をcvUndistortPoints()した座標を
重畳描画してみたところ,位置が重ならずに困っています.
(1)を
cvUndistort2( 元画像, 結果画像, カメラ行列A, 歪係数D );
(2)を
cvUndistortPoits( 元点座標, 結果座標, カメラ行列,A 歪係数D, NULL, カメラ行列A );
としていますが,引数指定が間違っているのでしょうか?
0590589
2011/07/28(木) 12:32:14.95必要となる計算の方向が逆だから同じコードで計算はされていないはずだ
→重ならない理由はそこらにあるのか?
→歪モデル式から逆計算せねばならないcvUndistortPoints()はちゃんとやっているのか?
…とか考えてcvUndistortPoints()のソース覗いてみたのですが
// compensate distortion iteratively
という個所で forで5回だけ回る謎のコードが書いてある…
この部分がドキュメントでの「 approximate iterative algorithm」に当たるのだと思うのですが
なんでこれで計算できるのかがさっぱりわかりません.
この個所の意味がわかる方いらっしゃいませんでしょうか…
0591デフォルトの名無しさん
2011/08/17(水) 10:56:47.22それC++でできるよ
というかなんでみんなC++使わんの?
0592デフォルトの名無しさん
2011/08/17(水) 11:49:53.830593デフォルトの名無しさん
2011/08/20(土) 14:50:05.25皆(みな)=A lot of people
みんな元気? と聞かれて いぇーい! と答える口?
なんでみんな元気って分かるんだろうね。
0594デフォルトの名無しさん
2011/08/22(月) 01:29:41.690595デフォルトの名無しさん
2011/08/22(月) 09:18:56.340596デフォルトの名無しさん
2011/08/22(月) 22:08:45.210597デフォルトの名無しさん
2011/08/26(金) 16:03:05.410598デフォルトの名無しさん
2011/08/26(金) 17:47:46.080599デフォルトの名無しさん
2011/08/30(火) 00:30:43.320600デフォルトの名無しさん
2011/09/04(日) 02:08:01.11ver2.3を用いた時になぜかビルドできなかったので、ver2.2を用いてしばらく使っていました。
ですが、webカメラを用いて画像(動画)を取得する動作をさせるプログラムを作った際に、グレーの画面しか出てこず、
うまくいかなかったので、調べた結果windows7 64bitモデルでver2.2を用いた場合はこのような症状が多発しているとのことで、
ver2.0を用いればうまくいくとの事だったのでて新たにver2.0でやり直そうとしたところCMakeを用いてソリューションをビルドしなくてはならないとのことだったので
(今まではCMakeを用いてなかったのですが)今回初めてCMakeを用いて設定したのですが、ソリューションをビルドしたときに作成されるはずのファイルのうち
重要なcv200.libだったり、highgui200.libだと言ったファイルが作成されないのですが、どうしたらよいのでしょうか?
0601デフォルトの名無しさん
2011/09/04(日) 05:34:25.54長い
0602デフォルトの名無しさん
2011/09/04(日) 06:22:18.75lib\Releaseやbin\Releaseあると思うけど
ビルドは成功しているんだよね?
どういったファイルが生成されたのかログを見たら
0603デフォルトの名無しさん
2011/09/04(日) 16:43:56.60ネットから拾ってきたDxLibとの併用のサンプルプログラムを実行しようとしているのですが、
OpenCVのCvCaptureなどの構造体、及び関数がVS2010に認識されません。
VS側の追加のインクルードディレクトリに登録するのは、opencv\build\include\opencv2及び\opencv、
環境変数のPathに追加するのは、opencv\build\x64\build\vc10\bin。
これらで合っているでしょうか?
0604デフォルトの名無しさん
2011/09/04(日) 16:54:28.76VSの追加のライブラリディレクトリか環境変数libに
opencv\build\x64\build\vc10\lib辺りを追加して
追加の依存ファイルにライブラリ名追加するのを忘れてんじゃないの?
0605デフォルトの名無しさん
2011/09/04(日) 18:53:59.210606デフォルトの名無しさん
2011/09/04(日) 19:48:38.020607デフォルトの名無しさん
2011/09/04(日) 20:55:51.12プロジェクトのプロパティ、リンカーの追加のライブラリディレクトリにopencv\build\x64\build\vc10\libを追加することでとりあえず赤線は消えました。
仰るとおりでした、ありがとうございます。
しかしコンパイル時にcvReleaseCapture等が未解決の外部シンボルのエラーになってしまいました。
これはまだ追加のライブラリや追加のインクルードに必要なフォルダが登録されていないということでいいんでしょうか?
0608デフォルトの名無しさん
2011/09/04(日) 22:19:30.510609デフォルトの名無しさん
2011/09/04(日) 22:27:02.85リンクならライブラリを指定してないんじゃないの。
0610607
2011/09/05(月) 18:41:14.43導入手順を確認したいのですが、これ以上は初心者スレに行ったほうがいいでしょうか?
0611デフォルトの名無しさん
2011/09/05(月) 18:49:19.46リンクエラー(未解決の外部シンボルのエラー)になるということは、
プログラム内にも追加の依存ファイルの中にもその関数の実体がないということ。
cvReleaseCaptureならopencv_highgui2*.libだと思うけど、入ってる?
0613デフォルトの名無しさん
2011/09/07(水) 09:48:52.35C:> "%VS100COMNTOOLS%\\vsvars32.bat"
C:> for %f in (*.lib) do @(dumpbin /EXPORTS %f | findstr cvReleaseCapture && echo %f)
_cvReleaseCapture
opencv_highgui230.lib
_cvReleaseCapture
opencv_highgui230d.lib
0614デフォルトの名無しさん
2011/09/12(月) 16:12:01.920615デフォルトの名無しさん
2011/09/12(月) 17:14:47.74一つずつ調べて書き直せ
0616デフォルトの名無しさん
2011/09/12(月) 19:38:13.110617デフォルトの名無しさん
2011/09/12(月) 20:22:06.53highguiあたりで引数が増えたりがあったけど。
0618デフォルトの名無しさん
2011/09/12(月) 20:48:01.74_c.hの方をincludeすると幸せになれる
0619デフォルトの名無しさん
2011/09/13(火) 18:51:59.56スレッド上ではうまく動かないとかあるんでしょうか?
0620デフォルトの名無しさん
2011/09/13(火) 19:31:25.860621デフォルトの名無しさん
2011/09/14(水) 01:24:17.68格子状に縦と横の線が垂直に交わっていて、その交点を抽出したいのですがうまくできなくアドバイスが欲しいのです。
関数 cvGoodFeaturesToTrack() を使ってコーナーとして検出できるのかなと思ったのですが、背景が暗い白、格子線が背景より少し明るい白のためか、誤検出が多いのです。
恐縮ですが知恵、知識を拝借願えないでしょうか。
0622デフォルトの名無しさん
2011/09/14(水) 01:43:46.360623デフォルトの名無しさん
2011/09/14(水) 08:31:02.660624619
2011/09/14(水) 12:12:25.55OpenGLのウィンドウへコピーしたら表示されました
0625デフォルトの名無しさん
2011/09/14(水) 12:58:20.65クラスタリングで減色すればいいのでは
0626デフォルトの名無しさん
2011/09/14(水) 14:22:58.51cvGoodFeaturesToTrackは使ったこと無いから的外れかもしれんが、特徴点抽出だから余計な点まで抽出してるのかも
http://wikiwiki.jp/masayashi/?OpenCV%2FGood%20Features%20to%20Track
余裕あったらcvFindContoursで格子の輪郭(出来れば矩形のみ)を抽出して、それぞれの頂点から交点を求めても良いかもしれん
http://imagingsolution.blog107.fc2.com/blog-entry-202.html
ただ、色が近いと二値化しても角が丸くなっちゃって、交点がずれたり矩形と認識されない可能性もあるから、保証は出来ん
0627デフォルトの名無しさん
2011/09/14(水) 23:34:21.66Visual C++ 2010 ExpressとOpenCV 2.3.1を合わせて導入したのですが、
(OpenCVはコンパイル済みのOpenCV-2.3.1-win-superpackを使用)
Debugでビルドした実行ファイルは正常に動作するのですが、
Releaseでビルドした実行ファイルがすべてクラッシュしてしまいます。
正常に実行出来るようにするには、どういった点をチェックすればよろしいでしょうか。
0628デフォルトの名無しさん
2011/09/14(水) 23:46:04.54Visual C++ 2010の[リンカー] - [入力]設定欄で
末尾にdがつくlibファイルを先に入力するとDebugは正常に動くがReleaseは動かず、
末尾にdがつかないlibファイルを先に入力するとReleaseは正常に動くがDebugは動かないようでした。
両立させるにはどのように設定すればよろしいのでしょうか?
0629デフォルトの名無しさん
2011/09/15(木) 00:01:32.160630デフォルトの名無しさん
2011/09/15(木) 00:25:31.290631デフォルトの名無しさん
2011/09/15(木) 02:26:16.61プロジェクトのプロパティ→構成
Debugの方をdつく方にして
Releaseはつかない方セットする
0632デフォルトの名無しさん
2011/09/15(木) 03:50:48.150633デフォルトの名無しさん
2011/09/15(木) 03:53:18.460634デフォルトの名無しさん
2011/09/16(金) 06:58:51.080635デフォルトの名無しさん
2011/09/16(金) 08:59:39.98定義され ていないとエラーが出てしまいます。
どうやったらroiにrからの値を代入できるでしょうか?
ちなみに[breakpiont]ではrがありえない数字もしくはエラーになってしまいます。
ご教授の程よろしくお願いします。
以下部分的なソースコードです。
0636デフォルトの名無しさん
2011/09/16(金) 09:03:18.91CvRect *r;
省略
for(int i=0; i < (objects ? objects->total : 0); i++){
r = (CvRect *) cvGetSeqElem(objects, i);
if(r != NULL) roi = cvRect(r->x, r->y, r->width, r->height);
cvRectangle(frame, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y+r->height), CV_RGB(0, 255, 0), 4);
}
roi = cvRect(r->x, r->y, r->width, r->height);
cvSetImageROI(frame,roi); //[breakpoint]
cvShowImage("顔検出",frame);
cvResetImageROI(frame);
0637デフォルトの名無しさん
2011/09/16(金) 11:17:00.13顔がひとつも検出されないときに
ループに入らないからrが未定義なのでは
0638デフォルトの名無しさん
2011/09/16(金) 12:21:04.76アドバイスありがとうございます。
おかげさまで解決しました。
一応解決方法として
roi = cvRect(0, 0, frame->width, frame->height);
と最初に定義することで解決しました。
0639デフォルトの名無しさん
2011/09/16(金) 12:26:13.44プログラム作ってるのですが、プログラムを10秒くらい起動し
ているとメモリの不正アクセスとかで落ちます。
なにか良い改善方法はありませんでしょうか?
0640デフォルトの名無しさん
2011/09/16(金) 16:13:30.130641デフォルトの名無しさん
2011/09/16(金) 22:41:57.11アドバイスありがとうございます。
言われた通りに1回1回メモリ開放すればずいぶん長く起動できる
ようになりました。
ところで、カメラが家に2つあるので両方ためしたのですが
1つは正常に動作
もう1つはメモリの不正アクセスでエラー
となるのですが、カメラによってプログラムの動作もやっぱり
大きく変わってくるのでしょうか?
0642デフォルトの名無しさん
2011/09/17(土) 08:20:42.18cvSetCapturePropertyでカメラの縦横解像度を指定できる
0643デフォルトの名無しさん
2011/09/17(土) 09:55:53.09対応してない解像度を指定しているとは盲点でした。
アドバイスありがとうございます。
ですが解像度はどうやら関係ないようでした。
FPSも関係ないようです。
ドライバの問題でしょうか?
ちなみにエラーするカメラは「ps3Eye」でドライバは有志のかたがたが
作られたものです。
0644デフォルトの名無しさん
2011/09/17(土) 15:09:28.50alexpのドライバは1年半前あたりの奴は安定性に問題があったけど今は改善されてる気がする。
これ使ってる?(左下のCL Eye Platform Driver)
http://codelaboratories.com/downloads/
0645デフォルトの名無しさん
2011/09/17(土) 16:16:18.53それ使ってます。
0646デフォルトの名無しさん
2011/09/17(土) 17:03:40.39http://opencv.jp/sample/estimators.html#condensation
のサンプルコードをVC++で実行すると
'System.NullReferenceException' のハンドルされていない例外が .exe で発生しました。
追加情報: オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーがでてしまうのですがどこか間違っているのでしょうか。
初歩的な質問で申し訳ありませんがよろしくおねがいします。
0647デフォルトの名無しさん
2011/09/17(土) 17:34:17.10だとすると何とも・・・
まあOpenCVのキャプチャコードは大してまともじゃないということと、
フリーのドライバだけに完璧じゃないということもあるし。
解決可能かどうかはともかくだけど、プログラム的には、どういう条件で起きるか、
例外がどこスレッドで、どこのメモリで、どういうスタック状態で起きているのかを精査するのは無駄ではないはず。
画像キャプチャ部分だけ他のライブラリ使う手もある。
0648デフォルトの名無しさん
2011/09/17(土) 18:05:01.37画像を表示させたりとか基本的なところは実行出来てるんだよね?
0649デフォルトの名無しさん
2011/09/17(土) 20:14:13.84USBカメラを選択したあとでエラーがでます。
少し調べたところ
1フレームキャプチャし,キャプチャサイズを取得する.
のあたりが問題なようですがよくわからなくて困っています。
0650デフォルトの名無しさん
2011/09/18(日) 00:22:28.40なるほど、確かに精査することで得るものもありそうですね。
ちょっと調べてみます。
お付き合いいただきありがとうございました。
0651デフォルトの名無しさん
2011/09/18(日) 00:44:33.800652デフォルトの名無しさん
2011/10/04(火) 17:31:22.62int main (int argc, char **argv) {
CvMat *W = cvCreateMat (6, 3, CV_64FC1);
CvMat *U = cvCreateMat (W->height, W->width, CV_64FC1);
CvMat *sigma = cvCreateMat (W->width, W->width, CV_64FC1);
CvMat *V = cvCreateMat (W->width, W->width, CV_64FC1);
int i, j;
for (i = 0; i < W->height; i++) {
for (j = 0; j < W->width; j++)
cvSetReal2D (W, i, j, i*j);
}
cvSVD (W, sigma, U, V, CV_SVD_V_T);
return 0;
}
としたらうまく動作しますが、
0653デフォルトの名無しさん
2011/10/04(火) 17:33:57.25void factorization (CvMat *W, int frame_count, int final_count) {
CvMat *U = cvCreateMat (W->height, W->width, CV_64FC1);
CvMat *sigma = cvCreateMat (W->width, W->width, CV_64FC1);
CvMat *V = cvCreateMat (W->width, W->width, CV_64FC1);
cvSVD (W, sigma, U, V, CV_SVD_V_T);
のように関数にCV_64FC1型の行列Wを関数の引数とした場合
Sizes of input arguments do not match (U matrix has unappropriate size)
in function cvSVD,. \cxsvd.cpp(1334)
となりうまくいきません。
分かる方いらっしゃいますか?
0654デフォルトの名無しさん
2011/10/04(火) 19:17:23.15上のでもWをcvCreateMat (3, 6, CV_64FC1); にしたら通らないのでは
引数の行列のサイズが違うといわれているけど
0655652
2011/10/04(火) 21:39:27.16Wを転置行列にしてからSVDを行うことによって解決しました。
654さんありがとうございました。
0656デフォルトの名無しさん
2011/10/05(水) 14:44:53.57このサイト→(http://ameblo.jp/8810-008/entry-10976608820.html)を参照してインストールしたので、一応プロパティシートも変更したりしました。
以下にソースコードと、エラー内容を載せるのでどこを変更したらいいかご教授ください。
おそらくソースコード自体はO'RIELYの『詳解OpenCV』を元に書いてるのでとくに問題はないと思います。
実際に、OpenCVの別のバージョン(1.0、2.2)では問題なく実行できていました。
ただ、ver1.0や2.2(どちらもインストーラーファイルにてインストール)ではWindows7の64bitで使用した際に、webカメラを指定すると
一瞬で終了したり、真っ黒な画面が表示されたり、そもそもwebカメラが見つからないと言ったエラーが出てくるので、バージョンを変更しました。
2.0ではそれらの問題がないとのことでCMakeをもちいてインストールしたのですが、ソリューションのビルドをしたところ、highgui.libなどいくつかのlibファイルが
生成されないと言ったエラーが起こってしまい、結局できませんでした。
もし、最初の質問に加えて、これらの問題の解決策についても、ご存じの方がいらっしゃいましたらご教授お願いします。
(ちなみに、ver2.0は右記サイトを参照してインストールしました。→http://imagingsolution.blog107.fc2.com/blog-entry-149.html)
使用PC
OS:Windows7 (64bit)
0657デフォルトの名無しさん
2011/10/05(水) 14:50:30.78#include "highgui.h"
#include"cv.h"
#include"opencv2\\opencv.hpp"
#pragma comment(lib,"D:\\OpenCV2.3.0\\build\\lib\\Debug\\opencv_core230d.lib") // opencv_core
#pragma comment(lib,"D:\\OpenCV2.3.0\\build\\lib\\Debug\\opencv_imgproc230d.lib") // opencv_imgproc
#pragma comment(lib,"D:\\OpenCV2.3.0\\build\\lib\\Debug\\opencv_highgui230d.lib") // opencv_highgui
#pragma comment(lib,"D:\\OpenCV2.3.0\\build\\lib\\Debug\\opencv_objdetect230d.lib") // opencv_objdetect
int main( int argc, char** argv )
{IplImage* img = cvLoadImage( "D:\\OpenCV2.2\\Chrysanthemum.jpg" );
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE );
cvShowImage("Example1", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow("Example1");}
エラー内容↓
D:\OpenCV2.3.0\include\opencv\highgui.h(45): fatal error C1083: include ファイルを開けません。'opencv2/core/core_c.h': No such file or directory
0658デフォルトの名無しさん
2011/10/05(水) 20:24:06.16C言語ならcxcore.hじゃないの
エラーはD:\OpenCV2.3.0\include\opencv2\core\core_c.hが存在するなら
D:\OpenCV2.3.0\includeにインクルードのパスが通ってないと思うけど
そのサイトはファイルを直接編集しろとか言ってるけど
普通はツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリで設定する
0659デフォルトの名無しさん
2011/10/06(木) 00:46:07.10ホムペはありませんか?
無ければわかるようになるまで学ぶ方法(ネット、本でもおk)を教えてください。
0660デフォルトの名無しさん
2011/10/06(木) 00:52:59.75やりたい事がPCで普通に出来るところまで勉強すれば。
0661デフォルトの名無しさん
2011/10/06(木) 01:20:54.25visual studioとか買った方がいいんでしょうか?
0662デフォルトの名無しさん
2011/10/06(木) 01:32:10.22とりあえずVSは無料版でOK
0663デフォルトの名無しさん
2011/10/06(木) 02:11:06.58返信ありがとうございます。
一応cxcore.hをもちいたり、highgui.hの方に変更したり、プリコンパイル済みヘッダーの使用(プロジェクトのプロパティより設定)を、使用(/Yu)から作成(/Yc)に切り替えたりと、
色々やってみたのですが、やはり前二者に関しては同じエラーが、後者に関しては、別のエラーが出てしまい解決に至らなかったのでおっしゃる通りパスの設定やcore_c.hの有無等を確認したところ
パスは、環境変数の設定で追加してあるのに加えて、VC++ディレクトリのインクルードの方にも追加したのですが、うまくいきませんでした。
そこで、core_c.hの方を探してみると、なぜか生成されておらず、恐らくこれが原因かと思われたので、同じバージョンのコンパイル済みファイル(OpenCV-2.3.0-win-superpack.exe)内の...\OpenCV2.3\build\include\opencv2にあったファイルを持ってきて
もう一度ビルドするとビルド自体はうまく行きました。
そこで、今度はデバッグしようとすると「opencv_core230.dllがないため、プログラムを開始できません。・・・・」といったシステムエラーメッセージが出てきてしまいました。
しかし、opencv_core230.dllを探したところ、ちゃんと存在しておりました。
このエラーはなぜおこるのでしょうか?
0664663(660)
2011/10/06(木) 02:27:06.86エラーの解決策をご教授いただけますでしょうか?
0665デフォルトの名無しさん
2011/10/06(木) 02:32:13.16ありがとうございます。
無料版もあるんですか。
やってみます。
0666デフォルトの名無しさん
2011/10/06(木) 11:42:41.110667デフォルトの名無しさん
2011/10/06(木) 12:02:36.51まあCでも十分といえば十分だが
0668デフォルトの名無しさん
2011/10/06(木) 13:04:26.490669デフォルトの名無しさん
2011/10/06(木) 14:09:24.7410年間C++をしっかり勉強してからOpenCVに手を出すのがいいと思う
0670デフォルトの名無しさん
2011/10/06(木) 14:12:38.13でもやっぱりソースコードが読めるくらいの知識は必要だったり
0671デフォルトの名無しさん
2011/10/06(木) 14:16:07.85環境が複雑になってそうだけど
ファイルがないのではなく、別のバージョンのヘッダーを読んでいるってことはないかな
インクルードディレクトリに複数のバージョンのOpenCVのincludeディレクトリが入ってるとか
dllのエラーはVC++ディレクトリの実行可能ディレクトリにdllがあるディレクトリを追加するか
dllがあるディレクトリを環境変数PATHに追加すればいいと思う
前者の場合、VC上から実行したとき以外はエラーになるだろうからPATHに入れるのがいいと思う
0672デフォルトの名無しさん
2011/10/07(金) 23:11:56.99環境:Android2.3.3 OpenCV2.3.1
Matで読み込んだ画像をcvFindStereoCorrespondenceGC関数の引数に使いたいんですが、うまくいきません
Mat* image_left = (Mat*)addr_left; // jlong -> mat
Mat* image_right = (Mat*)addr_right;
CvSize size = cvGetSize(image_left);
CvMat* disparity_left = cvCreateMat( size.height, size.width, CV_16S );
CvMat* disparity_right = cvCreateMat( size.height, size.width, CV_16S );
CvStereoGCState* state = cvCreateStereoGCState( 16, 2 );
cvFindStereoCorrespondenceGC(image_left, image_right, disparity_left, disparity_right, state, 0 );
cvReleaseStereoGCState( &state );
CvMat* disparity_left_visual = cvCreateMat( size.height, size.width, CV_8U );
cvConvertScale(disparity_left, disparity_left_visual, -16 );
Matは引数に使えないんでしょうか?適切な型がわかりません
どなたか教えていただけないでしょうか
0673デフォルトの名無しさん
2011/10/09(日) 12:53:28.06Opencvのカスケード分類器を用いて顔の認識を行っています。
検出される各領域に付けられる、それぞれのスコア(検出度)を出力したいのですが、
どこを参照すればいいですか?
唐突な質問で申し訳ないですが、宜しくお願いします。
0674デフォルトの名無しさん
2011/10/10(月) 01:33:41.70分類器を全て通過したかしなかったかの2値だと思う
0675デフォルトの名無しさん
2011/10/10(月) 20:48:24.39cvhaar.cppのcvRunHaarClassifierCascadeのstage_sumでも返したらいいんじゃね?
0676デフォルトの名無しさん
2011/10/16(日) 21:18:46.11ソースは以下のような感じです.
VideoWriter VideoWriter("out.avi",CV_FOURCC('D','I','B',' '), 30, Size(Width,Height));
while(true){
Mat img;
//ここでimgをロード(省略)
VideoWriter.write(img);
}
情報が少なくて申し訳ないですがよろしくお願いします.
0677デフォルトの名無しさん
2011/10/17(月) 01:11:43.76まずはどう動作しないのか、どういうエラーが出るのかくらい書こうぜ
0678デフォルトの名無しさん
2011/10/17(月) 09:46:30.06もしくは>>582-583
0679デフォルトの名無しさん
2011/10/20(木) 17:55:46.97当方vmwareを使用してatde2(linux)環境でopencv2.0をインストールしようとしています。
opencvのmakeまではうまくいくのですがmake installを行おうとしたところ以下のようにエラーが出てしまい、うまくいきません。
[100%] Built target traincascade
Install the project...
-- Install configuration: "RELEASE"
-- Installing: /home/atmark/opencv/release/share/opencv/OpenCVConfig.cmake
.
.
-- Installing: /home/atmark/opencv/release/include/opencv/cvwimage.h
-- Installing: /home/atmark/opencv/release/include/opencv/cxflann.h
CMake Error at src/cv/cmake_install.cmake:48 (FILE):
file INSTALL cannot find "/home/atmark/opencv/release/lib/libcv.so.2.0.0".
Call Stack (most recent call first):
src/cmake_install.cmake:38 (INCLUDE)
cmake_install.cmake:47 (INCLUDE)
make: *** [install] エラー 1
root@atde:/home/atmark/OpenCV-2.0.0/release#
原因がわからず困っています、必要であれば他の情報もお伝えしますので分かる方いらしたらよろしくおねがいします。
0680デフォルトの名無しさん
2011/10/21(金) 10:19:13.16そもそもなぜ今頃2.0なのか
0681デフォルトの名無しさん
2011/10/21(金) 19:05:10.73普通にconfigure && makeからmake install行けたんだが(なぜか*.so.4.0.0とかなったけど)
cmakeでもpython切って通したが(こっちはちゃんと*.so.2.0.0)
とりあえず、
1. そのパッケージを取ってきたところ
2. cmake .した結果
が知りたい
0682デフォルトの名無しさん
2011/10/21(金) 23:52:50.13なんかメリットあるんだろうか
0683406
2011/10/22(土) 17:53:48.16格安Webカメラを並べてモーションキャプチャに車輪の再発明承知で挑戦・・・
ただマーカーとかキャリブレーションの小道具とかUSBの延長とかやってるとKinectの値段を超えそうな…
もちろん、UVCがサポートされていなかった2.2以前でもDirectShow経由でUVC使用可にするサンプルや情報を
公開してくださった>>406のページのみなさんへの感謝は忘れない!これがなければ半年前に心が折れていた…
0684デフォルトの名無しさん
2011/10/23(日) 22:57:27.16どうやって勉強したらいいのか教えてください
もう2カ月くらい頑張りましたができる気配がありません
当方初心者です。
0685デフォルトの名無しさん
2011/10/23(日) 23:17:02.010686デフォルトの名無しさん
2011/10/24(月) 00:51:49.39ぬぎました
0687デフォルトの名無しさん
2011/10/24(月) 00:57:12.59どこか初心者でもおkな情報源ありませんでしょうか?
本も堆く積みあげられてます。
0688デフォルトの名無しさん
2011/10/24(月) 08:58:41.250689デフォルトの名無しさん
2011/10/25(火) 23:07:38.99ぐぐってダメだからここで聞いたんだっての
また時間置いてぐぐって挑戦してみるわ。
0690デフォルトの名無しさん
2011/10/25(火) 23:28:18.41日本語のOpenCV本って10冊もないでしょ?
全部読んでもわからないならあきらめたほうがいい。
0691デフォルトの名無しさん
2011/10/25(火) 23:44:34.86OpenCV以前の問題であることがほとんど
0692デフォルトの名無しさん
2011/10/26(水) 00:02:32.08諦めきれない
>>691
そうなんだけどな。
でも他にどうしようもないわ。
0693デフォルトの名無しさん
2011/10/26(水) 00:20:14.19アドバイスもしやすくなる
0694デフォルトの名無しさん
2011/10/26(水) 03:46:42.970695デフォルトの名無しさん
2011/10/26(水) 07:41:39.17プログラム暦というか、技量がわかるような記述が無いし。
何をしたいかも明確でない。ただの愚痴しか書いてないんじゃな。
0696デフォルトの名無しさん
2011/10/26(水) 14:00:00.72http://d.hatena.ne.jp/ksksue/20110724/1311505685
androidでOpenCV(環境構築編) ? Android
http://team-hiroq.com/blog/android/android_opencv_setup_environment.html
いくらでも出てくるのになぁ
つーかC++で無くてもJavaで直接動くんだから、これで使えないなら才能無いと思ってプログラムの世界から身を引いたほうが良い
0697デフォルトの名無しさん
2011/10/26(水) 23:53:00.48さんくす
またやる気が復活したら相談にくるわ。
>>694
sine
>>695
まぁ、愚痴だから・・・
>>696
(2)−8
gcc、make、cmake、libidn、swig、subversionが必要ですので、リストから選択してください。
ここで詰んだ
cmakeはわかったんだが他の奴をどう選択すればいいのかさっぱりわからん。。。
ちなみにプログラム歴はいまやり始めたところ。
昔エクセルのマクロに挫折した。
0698デフォルトの名無しさん
2011/10/26(水) 23:53:41.37ちなみに
androidでOpenCV(環境構築編) ? Android
http://team-hiroq.com/blog/android/android_opencv_setup_environment.html
こっちの話ね。
0699デフォルトの名無しさん
2011/10/27(木) 00:02:04.91同じように選択すればいいと思うが
検索できるなら入力して見つければいいだろうし、Cygwinは知らんがGCCとかmakeはdevかなんかのグループにあるんじゃないかな
ひたすらリスト内から探してチェック付けてインストール
まぁ、Linuxなりなんなりでやった方が楽と思う
0700デフォルトの名無しさん
2011/10/27(木) 02:37:51.86確か今のandroid SDKのえみゅってWindowsとLinux限定でWebカメラに対応したんだっけ?
だったら下手したら実機無しでもさくっと出来るね
0701デフォルトの名無しさん
2011/10/27(木) 12:49:15.56>gcc、make、cmake、libidn、swig、subversionが必要ですので、リストから選択してください。
>ここで詰んだ
あーそれはLinux環境で10年間C++を勉強するしかない
まずバージョン管理しながらコードを書いて
きちんとしたビルドシステムが使えて
ジェネレーターを使って他スクリプト言語へのバインディングも作れるようになる
その過程で全てが分かるであろう
0702デフォルトの名無しさん
2011/10/27(木) 13:27:25.240703デフォルトの名無しさん
2011/10/27(木) 21:12:19.21そりゃわかるだろうなw
0704デフォルトの名無しさん
2011/10/27(木) 22:45:44.97ttp://www.kkaneko.com/rinkou/octave/
俺が勤めてた会社の先輩で、脱サラしてどこかの教授になった人は
MATLAB使えてもCは使えなかったみたいだし。
0705デフォルトの名無しさん
2011/10/28(金) 00:16:34.74TVチューナーが優先的に認識されてしまいます。
認識するカメラを直接指定することは可能ですか?
(cvCaptureFromCAM(0) の引数を変更するだけでは駄目でした)
0706デフォルトの名無しさん
2011/10/28(金) 00:36:27.53自分の環境(2.3.1)ではcvCreateCameraCapture(int index)のindexで指定できてますね。
0指定だと別のカメラ(TVチューナ)が、1指定なら何も表示されないってパターンのときは、
一度Microsoft Expressionで当該カメラの画像を表示してやるとなぜかその後うまくいくことがしょっちゅうです。
0707デフォルトの名無しさん
2011/10/28(金) 00:53:13.53使えるかどうかを…切り分け済みならすみません。
自分はWebカメラが安物のせいかよく繋ぎ直しで認識させてます。
あと幅高さを320x240にしてみるとかですかね。ただ幅高さは変な値を入れても
勝手にサポートしている近い値に修正される節があるので、原因とは考えにくいですが。
0708デフォルトの名無しさん
2011/10/28(金) 00:56:58.720指定=>TV
1指定=>コンソール上に『映像を取得できません』とポップアップで
『5-3.exe の 0x004122a3 でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000020 を読み込み中にアクセス違反が発生しました』
というエラーが出ます。
Microsoft Expressionで当該カメラの画像を
表示してみた後でも同様でした。
開発環境はVisualStudio2010です。
0709デフォルトの名無しさん
2011/10/28(金) 01:06:21.04先走って書いてすみませんでした
他のアプリでは動作確認済みです。
先程から助言ありがとうございます!
0710706-707
2011/10/28(金) 01:08:23.86いえ、力になれずに申し訳ないです。
http://opencv.jp/sample/video_io.html#capture
にある「カメラからの画像キャプチャ」のサンプルで引数を1にして動かないなら俺レベルですとお手上げです。
EEで表示できてるということはカメラ側orドライバ側の問題とも考えにくいですよね。
0711デフォルトの名無しさん
2011/10/28(金) 01:16:28.21ARToolkitの開発でこのカメラを使用した際も、TVチューナーが優先認識されてしまったのですが、
そのときはhttp://kougaku-navi.net/ARToolKit.htmlを参考に
入力カメラを直接指定することで解決しました。
OpenCVでも同じことができればよいのですが
0712デフォルトの名無しさん
2011/10/28(金) 06:45:17.06QTを別途インストールが必要?
0713デフォルトの名無しさん
2011/10/28(金) 10:11:36.03OPENCVを利用したプログラムで以下のURLの画像のような、元々の白黒画像を白と黒の輝度値を表示した画像に変換したいのですが
どうしていいか全く分からなくて、困っています
http://mcm-www.jwu.ac.jp/~physm/buturi07/robo/genri02.html
私の浅知恵のせいか、ネットで検索しても、よく分かりませんでした
0714デフォルトの名無しさん
2011/10/28(金) 10:29:47.622. 入力画像の各ピクセルにアクセスして輝度値を得る。
3. 新たに作った出力画像の対応する位置に輝度値を描画する。
4. 出力画像を保存する。
おしまい。
0715デフォルトの名無しさん
2011/10/28(金) 14:12:50.390716デフォルトの名無しさん
2011/10/28(金) 23:24:58.58デバイスマネージャでTVチューナーを無効化することで
USBカメラが優先認識されるようになりました(そらそうか)
0717デフォルトの名無しさん
2011/10/29(土) 09:57:32.48どっちかというとQtベースでOpenCVを使うって感じじゃないのか
0718デフォルトの名無しさん
2011/10/29(土) 10:49:22.82http://opencv.itseez.com/modules/highgui/doc/qt_new_functions.html
0719デフォルトの名無しさん
2011/10/30(日) 01:04:12.02image.bmp(デスクトップの背景画像の一部をトリミングした画像)が含まれているかを
認識し、ウインドウなどが開かれてそのimage.bmpの部分が隠れてしまった場合を取得したいのですが
どのようにすればよろしいでしょうか?常にデスクトップを監視してimage.bmpと比較する方法がわかりません・・・。
開発環境 VC++2010
0720デフォルトの名無しさん
2011/10/30(日) 01:09:51.34トリミングしたところの座標が分かればもっと楽だが
0721デフォルトの名無しさん
2011/10/30(日) 17:11:43.91以前 OpenCV 2.3.0 で試したことあるけど、Windows用バイナリ配布版では使えなかった。
でも、自分でOpenCVをビルドしたら使えるようになったよ。
1) QT libraries をインストール
2) OpenCV のソースコードを用意してCMakeを起動し、Qtを使うよう設定
3) C++コンパイラでビルド
4) http://opencv.itseez.com/modules/highgui/doc/qt_new_functions.html を試す→OK
0722デフォルトの名無しさん
2011/10/31(月) 18:26:33.18隠れた部分にはそもそも何も描かれていないのかも。
0723デフォルトの名無しさん
2011/10/31(月) 18:31:27.40http://www.yomiuri.co.jp/science/news/20111029-OYT1T00757.htm
OpenCV使って誰かやってみて。
0724デフォルトの名無しさん
2011/11/01(火) 00:10:21.0218歳以上の米国永住の人間が、はたしてこのスレにいるのか?
0725デフォルトの名無しさん
2011/11/01(火) 01:17:09.50ジグソーパズルはピースの境目が手がかりになるけど、
シュレッダー文書は、運がよければ文字が切れるが
運が悪ければ文章か単語の境目で切れるから
文脈の判断まで必要か。おまけに全部同型の長方形。
イランのアメリカ大使館のシュレッダー文書を、
ペルシャ絨毯織る女性たちが復元したころは
シュレッダーも単に縦に紙を切るだけで、横には切らなかったんだよね。
0726デフォルトの名無しさん
2011/11/01(火) 02:00:45.940727デフォルトの名無しさん
2011/11/01(火) 06:09:14.60キャリブレーションパラメータ取得と歪み補正やってみたら逆に魚眼レンズに近づいたワロタ
(1) 内部点のサイズが4x5
(2) 液晶モニタに表示させたチェスボードを撮影
(3) パラメータ取得に使った画像数は16枚(解像度は800x600)
(4) 1000円のUSBカメラを使用
と手を抜いている部分が多々あるので仕方ないのか。
公式ページのサンプルコードでは(1)は10x7、(3)は25枚なんだけど
(3)はどうにでもなるとして、(1)を10x7にするとなかなか認識してくれない…
モニタではなく紙に印刷したチェスボードを撮影すると、紙の凹凸のせいかやっぱり認識されにくい。
用紙の特定の箇所に黒インクが集中するから波打つんだよなぁ。レーザープリンタ使えってことか。
ちなみにcvFindChessboardCorners()のflagsはCV_CALIB_CB_ADAPTIVE_THRESH|CV_CALIB_CB_FILTER_QUADS。
0728デフォルトの名無しさん
2011/11/01(火) 09:21:20.12自分で紙に印刷するよりずっと信頼できるものができるよ.
モニタにパターン表示するのは(カメラ画像にフリッカーが写る場合があるのが難点だが)
特徴点が取れているならばそれでいいと思う.
校正精度が出ていないのは
多分,撮影の仕方の方に問題があるのではないかと予想.
全体的な特徴点分布を考慮して撮影するといい.
あと,安物のUSBカメラは
・触るとレンズvsセンサ面の位置がずれるものがある
→撮影画像間でずれてたら意味なし.
ずれてしまったら校正計算結果も無に帰す
・動体歪がすごい
→カメラを安置した状態で撮影すること.
手に持って撮影とかするとぐにゃぐにゃの絵が撮れてしまう
といったことに気をつけないとですよ.
経験的にcvFindChessboardCornersは明暗にそんなに強くないっぽいので
うまく点が取れない場合,前処理として自分で2値化した画像を渡したほうがうまくいく感じ.
0729727
2011/11/01(火) 21:07:02.56うおおおアドバイスてんこ盛りでありがとうございます!
印刷屋さんにお願いするのは費用的に最後の手段にしたいですね…。
でも時は金なりと考えるとアリかもしれませんね。
触ってレンズ・センサがずれるなんてことがあるとは…可能性が十分ありそうな価格でしたが
対策が思い浮かばないのでとりあえず、大事に扱う・祈る、を実践します。
そしておっしゃるとおり手でカメラを持って上下左右にかざしていたので、
動体歪みがすごいことになっているということだと思います。
(なるほど…すばやくカメラを動かしたときに長方形がサザエさんの
EDの家みたいに歪むのは動体歪みというものなんですね。)
アーム・三脚の代わりになるようなものを考えてみます。
ADAPTIVE_THRESHという賢そうな(?)オプションを渡していたので、てっきり俺レベルがちょっかい
出して良くなるものではないと思い込んでました。が、前処理をはさんで認識の頻度が上がれば
読ませる縦横コーナー数も増やせて良いこと多そうですね!2値化を試してみます。
「intrinsicは有効数字3桁ほどあるっぽいからこれだけ使ってdistortionはなかったことに…」と
妥協の道を進みそうになっていたところを救ってくださってありがとうございます!
0730デフォルトの名無しさん
2011/11/02(水) 01:26:14.76例えば輪郭を見つけたい対象物の一番左の座標から開始するとか。
0731デフォルトの名無しさん
2011/11/02(水) 01:36:30.520732デフォルトの名無しさん
2011/11/02(水) 02:23:21.17良ければ方法を教えて下さい。
よろしくお願いします。
0733728
2011/11/02(水) 09:49:08.54distortionがあまり問題にならない{カメラ,アプリ}ならば無視するのもアリかな.
パターン撮影時は,N枚の画像から得た特徴点データをすべて纏めてみたときに
・特徴点が画像縁ぎりぎりまで存在すること
・特徴点分布が偏らないこと(画像中心側に多い とか 画像右側に多い とかはよくない)
に注意する.
・パターンとの距離も画像によっていろいろ変えるべき
という記述もどっかで見たことある気がするけど,これは本当かどうか不明.
2値化は画像次第だけど,特に,撮影画像上でパターン面の明暗変化があるような場合では,
cvAdaptiveThreshの結果を確認しながら自分で満足のいく結果を作ったほうが結局近道になると思う.
(その際フィルタ半径はデフォルトを使わずにかなり大きめに(チェスの四角が数個入るくらいに)するといいよ.)
あとは,やってると思うけど,コーナー点座標をサブピクセル精度にRefineする関数に
cvFindChessboardCornersの結果を食わせると良いかも.
0734679
2011/11/02(水) 16:29:48.53大変遅くなりました。
いまだに解決できていないので再度質問です。
基本的に以下のサイトを参考に同様のことをしようとしてるのですがうまくいっていないのが現状です。
ttp://www.kimura-lab.net/wiki/index.php/OpenCV%E3%82%92suzaku%E3%81%A7%E4%BD%BF%E3%81%86#SUZAKU.E3.81.A7.E3.81.AE.E5.AE.9F.E8.A1.8C
>>681
パッケージをとってきたところはcmake公式サイトとopencv公式サイトです
色々とバージョンをかえても発生するのでopencvのインタラクティブでの設定がおかしいのでしょうか・・
0735679
2011/11/02(水) 17:51:05.00どこが原因か何度か試してみます、いた汚し失礼しました。
0736デフォルトの名無しさん
2011/11/02(水) 22:10:57.54大方その手順で出来ました。有難う。
でも、かなり面倒だった。
0737727
2011/11/02(水) 23:25:51.16またまたアドバイスありがとうございます!
>distortionがあまり問題にならない{カメラ,アプリ}ならば無視するのもアリかな.
言われてみれば、カメラについては問題になりそうではありますが、アプリにとっては効果が薄いかもしれません。
というのもアプリは複数台カメラによるマーカー認識+3次元座標推定を考えていて、
マーカー認識時の誤差がレンズ歪みによる誤差を大きく上回るかもしれないからです。
ですので一度最後までやってみてどこの誤差が精度に最も影響しているかを判断したいと思います。
特徴点分布の広がりや偏りは気を払っていませんでした。
枚数を増やしつつこれらに気をつけようと思います。
距離も離れると認識してくれないので近くで済ませたものが多かったです。
さっそくcvAdaptiveThresh()やってみました。フィルタ半径を大きくしないと中に穴が空いちゃうわけですね。
現時点では(まだ三脚の代わりも用意しておらず)手探りで進んだり止まったりです。
まずは認識できるサイズを7x10かそれに近いサイズにしていきたいと思います。
あとアングル決めでのプレビューは前処理のみにして作業時のフレームレート低下を防ぎ、
アングル決定後にチェスボードを認識、という方法で進めていこうかなと思いました。
サンプルコードそのまんまですが、cvFindChessboardCorners()の結果をcvFindCornerSubPix()に渡してはいます。
ご丁寧なお心遣いありがとうございます!
0738デフォルトの名無しさん
2011/11/04(金) 18:38:15.44cvConvexityDefectsはCvConvexityDefect構造体のシーケンスを返すとのことですが、
このcvConvexityDefect構造体のメンバにアクセスするにはどうしたらよいのでしょうか。
よろしくお願いします。
0739デフォルトの名無しさん
2011/11/08(火) 02:35:16.22ttp://d.hatena.ne.jp/moriyoshi/20070324/1174687182
0740デフォルトの名無しさん
2011/11/08(火) 07:52:17.280741デフォルトの名無しさん
2011/11/08(火) 08:40:03.78ライブラリのリンクが切れてるってことだろ
そんなの使わなくても php opencv でググればいくらでもあるだろ
0742デフォルトの名無しさん
2011/11/10(木) 11:54:34.67cvGet2DとかcvGetReal1Dといった関数があるのだろう。
普通に配列にアクセスするのと違いでもあるのかな。
0743デフォルトの名無しさん
2011/11/10(木) 14:31:14.66SSEではメモリのアライメントを16バイトにする必要があって
最適化するためにはパッディングがいる。
そうすると普通の2次元配列では隙間が開いてアクセスしにくいので
accessorを通すようになる。
また範囲をはみ出したアクセスを検出してデバッグ時に警告出したりするためにラップしとく便利。
他にもIplImageとCvMatを同じように扱いたいとか持っているデータがfloat,double,intなどの場合があって1要素のサイズが違うので型を意識してアクセスするのがだるいとか。
0744デフォルトの名無しさん
2011/11/10(木) 16:55:01.20ははー、すごすぎて私の理解を超えかかってしまっているのが
我ながら情けないですが、
なんとなくわかりました。
いろいろと効用があるんですね。
詳しく答えていただいて本当にありがとうございました。
0745デフォルトの名無しさん
2011/11/15(火) 21:13:58.67capture.retrieve(cap, CV_CAP_OPENNI_BGR_IMAGE);でカラーイメージを取得した後
cap >> Img;でフレームを取得しようとしたのですが
型 'cv::Mat' の左オペランドを扱う演算子が見つかりませんというエラーが出てきて取得できません
vc++とopencv2.3、openniを使っています
フレームを取得するにはどうすればいいでしょうか
0746デフォルトの名無しさん
2011/11/16(水) 00:53:01.250747デフォルトの名無しさん
2011/11/16(水) 08:44:23.45あっとすみません!
capとImgどちらもcv::Matです
0748デフォルトの名無しさん
2011/11/16(水) 13:07:08.77フレームってなに?
0749デフォルトの名無しさん
2011/11/17(木) 14:06:43.74fpsとかでググれ
0750デフォルトの名無しさん
2011/11/17(木) 14:16:44.740751デフォルトの名無しさん
2011/11/17(木) 14:55:32.18どの命令を実行してそのようになったのかエスパーじゃないからわからんが、
動画か連続撮影になってて次の画像を要求しているんじゃないかと妄想してみる
IplImageは表示出来たのか?
0752デフォルトの名無しさん
2011/11/18(金) 00:55:13.46使いやすいというほどにはわかりやすくないよね.
cv::Mat を使った簡単な画像ビューワでもつくってみて慣れるべきじゃないかな.
0753デフォルトの名無しさん
2011/11/18(金) 09:17:20.48いきなり3次元処理しようとしてわけわからんとか言ってるだけにしか見えないんだけどね
0754デフォルトの名無しさん
2011/11/18(金) 11:00:18.03基礎知識以前の基礎知識がなければなるほど使えるわけもないな。
0755デフォルトの名無しさん
2011/11/19(土) 14:28:03.48画像処理の詳細知識がなくても使えるのがOpenCV。基礎知識がないとまともには使えない。
画像処理の基礎知識がなくても使えるのはImageMagickとか
だと思う
0756デフォルトの名無しさん
2011/11/19(土) 14:55:22.67OpenCVの画像処理系の関数を片っ端から試してみるくらいはね。
0757デフォルトの名無しさん
2011/11/19(土) 15:55:27.39>>754
0758デフォルトの名無しさん
2011/11/19(土) 16:29:06.890759デフォルトの名無しさん
2011/11/19(土) 17:06:44.140760デフォルトの名無しさん
2011/11/19(土) 21:02:00.13直接つかわないにせよ色々な基礎知識として必要.「高周波成分」とか「直流成分」なんて言葉が
フーリエと全然関係ない分野で記述用語として使われるから.
0761デフォルトの名無しさん
2011/11/19(土) 21:23:32.94をしても、cv200d.dllとかhighgui.dllとかが生成されないんだが・・・。
同じようなエラーが起こった人はどんな対処をしたのか教えてください。
os:windows7 64bit
0762デフォルトの名無しさん
2011/11/20(日) 11:52:49.40VisualStudioを「管理者として実行」してみた?
0763デフォルトの名無しさん
2011/11/21(月) 06:58:54.00OpenCVでも60fpsで撮影できるのかな?
できるならどれか買うんだが。
0764デフォルトの名無しさん
2011/11/21(月) 16:26:31.06まぁお遊びだったし環境もバージョンも変わったから聞き流してくれ
0765デフォルトの名無しさん
2011/11/21(月) 17:02:07.04返信ありがとうございます。
一応さっき帰ってきてからもう一度やりなおしててみたんだが、やはり生成されない・・・。
Debug、Release共に.pdbという拡張子のファイルではhighguiだったりcv200だったりは存在するんだが・・・
0766デフォルトの名無しさん
2011/11/21(月) 17:18:23.71ソリューションの設定でdllの生成場所を確認せよ。
0767デフォルトの名無しさん
2011/11/22(火) 23:19:13.57エラーメッセージ書かないでクレクレとか意味不明ですよね。すみません。
エラーメッセージは
error C3861: 'back_inserter': 識別子が見つかりませんでしたC:\Users\○○\Desktop\OpenCV2.0\src\cv\cvmodelest.cpp
error C3861: 'back_inserter': 識別子が見つかりませんでしたC:\Users\○○\Desktop\OpenCV2.0\src\cv\cvmodelest.cpp
error LNK1104: ファイル '..\..\lib\Debug\cv200d.lib' を開くことができません。C:\Users\○○\Desktop\OpenCV2.0\build\src\highgui\LINK
の3種類でした。
一応参照までに下のアプロダにエラー画面を画像で貼りつけました。
http://uproda.2ch-library.com/lib455135.jpg.shtml
インストールの際に参考にしたHP↓
http://imagingsolution.blog107.fc2.com/blog-entry-179.html
0768デフォルトの名無しさん
2011/11/22(火) 23:37:33.730769デフォルトの名無しさん
2011/11/23(水) 00:02:41.70STLでエラーが出てるな。
てかOpenMPはVCで標準で入ってると思うのだがなんでこの参考サイトはOpenMP入れてないんだろ。
0770デフォルトの名無しさん
2011/11/23(水) 00:05:04.58一応エラーメッセージ(上の画像はDebugのみですが)ではそのように表示されてますが、dllファイル自体も生成されていないです。
VC++ 2008 Expressで同様にCMakeを使用してインストールした場合にはうまくいきましたが、VisualStudio2010の場合はどうしてもうまくいかないみたいです。
0771デフォルトの名無しさん
2011/11/23(水) 00:07:37.39openCV2.0が手元にないんだけど、多分
cvmodelest.cppのインクルードファイルに
#include <iterator>
を付け加えれば通りそうだけど。
つかOpenCV2.3.1使えばいいのに
0772769
2011/11/23(水) 00:17:06.86>>767
ためしにこっちでもやってみたらこっちでもなった
結論から言うと
cvmodelest.cppとcvhog.cppで
#include<iterator>
すればいけた。
0773デフォルトの名無しさん
2011/11/23(水) 00:38:15.57早速の回答ありがとうございます!
指示通りやってみたところ望みのファイルDebugおよびReleaseがうまく作成されました。
OpenCV2.3.1のほうは一度試してみたのですが、ちゃんとPathが通ってるのになぜかリンクのエラーが出て
うまくビルドができないので、2.0でやり直してみることにした結果がこうなりましたww
恥ついでに教えていただきたいのですが、今回のエラーはどういう点がポイントだったのでしょうか?
0774デフォルトの名無しさん
2011/11/23(水) 18:56:28.30VisualStudioが2010になって<vector>や<algorithm>をincludeしても
<iterator>がincludeされなくなったみたい。
0775デフォルトの名無しさん
2011/11/23(水) 20:11:08.04ご返事ありがとうございます。
なるほど。つまりは仕様だったわけですね。
それで手動でincludeする必要がでてきたわけですね!
解決策だけでなく、原因についてまでおしえていただき、どうもありがとうございました!!
0776デフォルトの名無しさん
2011/11/23(水) 22:16:15.760777デフォルトの名無しさん
2011/11/24(木) 04:40:03.730778デフォルトの名無しさん
2011/11/24(木) 17:22:26.11http://opencv.jp/opencv2-x-samples/point-cloud-rendering
上記サイトのPoint Cloud Renderingに興味を持ち、当方のPCでも動かしたいと思い、
webページにあるサンプルプログラムをコピペし、動作を試みました。しかし、安定のエラーが…
環境はWindows 7(64/32 bit*両方で試しました)にVisual Studio C++ 2010 Expressを導入後、
OpenCV.ver2.3.1(*試行錯誤で他ver(2.3.0/2.3.1)なども試しました)を導入したという状態です。
肝心のエラー内容の詳細は以下です。
1.Win 7 32bitの場合:
[エラーメッセージ]
3D.exe の 0x7645fc56 でハンドルされていない例外が発生しました
: Microsoft C++ の例外: cv::Exception (メモリの場所 0x001adbb0)。
[呼び出し履歴]
→kernel32.dll!7645fc56()
-[下のフレームは間違っているか、または見つかりません。kernel32.dll に対して読み込まれた シンボルはありません。]
kernel32.dll!7645fc56()
opencv_core231d.dll!50eeb1dc()
プログラムをコピペし、[デバック] > [デバック開始]をすると上記のような状態になり、進められません。
どのような原因が考えられるのでしょうか? またどういった解決法がありますか?
サイトのコメントにも書き込んだのですが、解決法の具体的な手法がよくわからなかったので、
ここでご返答賜りたく、書き込みました。長くなってすみません。どうかよろしくお願いします。
0779デフォルトの名無しさん
2011/11/24(木) 18:58:44.73OpenCV 2.2 だと動くっぽいよ
このサンプルが投稿された日にはまだ2.3.0出てないし
0780デフォルトの名無しさん
2011/11/24(木) 20:38:20.29呼び出し履歴のソースが読める範囲で最後はどこ?
0781デフォルトの名無しさん
2011/11/24(木) 22:50:50.42画像ファイルがないとかじゃね
0782デフォルトの名無しさん
2011/11/25(金) 00:52:43.680783デフォルトの名無しさん
2011/11/25(金) 00:59:39.060784デフォルトの名無しさん
2011/11/25(金) 12:30:14.97連投、申し訳ありません。記入漏れがあったので追記を…
2.Win 7 64bitの場合:
[エラーメッセージ]
3D.exe の 0x********(←忘れました) でハンドルされていない例外が発生しました
: Microsoft C++ の例外: cv::Exception (メモリの場所 0x00******)。
[呼び出し履歴]
→kernelbase.dll!********()
-[下のフレームは間違っているか、または見つかりません。kernelbase.dll に対して読み込まれた シンボルはありません。]
kernelbase.dll!********()
opencv_core231d.dll!********()
Win 7 64bitの場合はメモリアドレス?とカーネルの参照が違っているだけかと(32版と64版は全くの別PCです複数台で試行しました)。
皆さん返信ありがとうございます!
>>779
2.2でやってみようと思います。
>>780
初心者でよくわかっていなくて…。メモリアドレスの最後値はどこまでか、ということでしょうか?
>>781,>>782
画像を用意していないため、でしょうか。用意してみます。
>>783
なるほど...。結局kernel辺りのエラーがなんなのかよくわかりませんね…
2.2なら問題ないのかな。
0785デフォルトの名無しさん
2011/11/25(金) 17:29:27.172.Win 7 64bitの場合:
[エラーメッセージ]
3D.exe の 0x75e7b9bc でハンドルされていない例外が発生しました
: Microsoft C++ の例外: cv::Exception (メモリの場所 0x0024c8fc)。
[呼び出し履歴]
→KernelBase.dll!75e7b9bc()
-[下のフレームは間違っているか、または見つかりません。KernelBase.dll に対して読み込まれた シンボルはありません。]
KernelBase.dll!75e7b9bc()
opencv_core231d.dll!5877b1dc()
なんか再起動の度に値が変わっているような…、あまり重要ではないのでしょうか。
今日は時間が取れなくて、2.2での試行はまだ試せてはいません…
拙考なのでしょうが、結局、Kernel辺りを解決しないと同じような結果になってしまうのではないかと危惧していまして…
2.2ならその辺もまとめて解決してくれるのかなぁ…、とりあえず明日にやってみようと思います。
0786デフォルトの名無しさん
2011/11/25(金) 17:36:45.57[呼び出し履歴] が表示してくれている文章?で最後の行はどこか、ということだったのでしょうか?
もしそうだとしたら、
[呼び出し履歴] は
KernelBase.dll!75e7b9bc() ←ここから
-[下のフレームは間違っているか、または見つかりません。KernelBase.dll に対して読み込まれた シンボルはありません。]
KernelBase.dll!75e7b9bc()
opencv_core231d.dll!5877b1dc() ←ここまで表示してくれています
ちなみにエラーを出したメモリアドレス近辺はこんな感じでした。意味ないかもですが…
75E7B9B5 push eax
75E7B9B6 call dword ptr ds:[75E7115Ch]
→75E7B9BC leave //←ここでひっかかっている?
75E7B9BD ret 10h
75E7B9C0 int 3
*自動変数
名前 値 型
EAX 0024C850 -
EBP 0024C8A0 -
0787デフォルトの名無しさん
2011/11/25(金) 18:15:54.960788デフォルトの名無しさん
2011/11/25(金) 18:50:05.22>拙考なのでしょうが、結局、Kernel辺りを解決しないと同じような結果になってしまうのではないかと危惧していまして…
ちゃんと動くこと確認して書いてるんだからとりあえず2.2でやってみなよ
落ちてるのはデバッガで少しづつ追っていけばcv::projectPointsだと思うが、原因はよくわかんね
Mat &から InputArray に変わったせいかもね
0789デフォルトの名無しさん
2011/11/26(土) 16:57:44.19>>786です。 >>788様へ
当方のために、わざわざ試行していただきありがとうございました!
ご指摘いただきました通り、2.2にて試行してみました。
インクルードは#include <C:\OpenCV2.2\include\opencv2\opencv.hpp>
ライブラリは必要なものがよくわからなかったので、
#pragma comment(lib,"C://OpenCV2.2//lib//opencv_core220d.lib")のように
libフォルダ内全てを読み込ませてみました。
内容は変化したものの相変わらずのエラーが…
1>sagi3D.obj : error LNK2019: 未解決の外部シンボル "void __cdecl cv::reprojectImageTo3D
(class cv::_InputArray const &,class cv::_OutputArray const &,class cv::_InputArray const &,bool,int)"
(?reprojectImageTo3D@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@0_NH@Z) が関数 "void __cdecl stereoTest(void)"
(?stereoTest@@YAXXZ) で参照されました。
1>sagi3D.obj : error LNK2019: 未解決の外部シンボル "void __cdecl cv::projectPoints
(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_InputArray const
&,class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const
&,class cv::_OutputArray const &,double)" (?projectPoints@cv@@YAXABV_InputArray@1@0000ABV_OutputArray@1@1N@Z)
が関数 "void __cdecl projectImagefromXYZ_<unsigned char>(class cv::Mat &,class cv::Mat &,class cv::Mat
&,class cv::Mat &,class cv::Mat &,class cv::Mat &,class cv::Mat &,class cv::Mat &,class cv::Mat &,class cv::Mat &,bool)"
(??$projectImagefromXYZ_@E@@YAXAAVMat@cv@@000000000_N@Z) で参照されました。
1>C:\Users\kanrisya\documents\visual studio 2010\Projects\sagi3D\Debug\sagi3D.exe : fatal error LNK1120: 外部参照 2 が未解決です。
0790デフォルトの名無しさん
2011/11/26(土) 17:25:02.12ライブラリは
opencv_core220d.lib
opencv_highgui220d.lib
opencv_calib3d220d.lib
の3つ。
そのエラーはopencv_calib3d220d.libの#pragmaがないんじゃないの?
0791デフォルトの名無しさん
2011/11/26(土) 18:01:17.32>>790
返信ありがとうございます。見当違いなエラーを載せてしまってすいません…
教えて下さったように必要ライブラリを絞ってみました。
#pragma comment(lib,"C://OpenCV2.2//lib//opencv_calib3d220d")も追加です。
そして…
1>sagi3D.obj : error LNK2019: 未解決の外部シンボル "void 〜
1>sagi3D.obj : error LNK2019: 未解決の外部シンボル "void 〜
1>C:\Users\kanrisya\documents\visual studio 2010\Projects\sagi3D\Debug\sagi3D.exe : fatal error LNK1120: 外部参照 2 が未解決です。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
……
うぅ…
ちなみに、>>781-782とあったので、
画像をhttp://opencv.jp/opencv2-x-samples/point-cloud-rendering の上から7行目くらいにある"データセットダウンロード"
から、kinectdepth.raw 、 kinectimage.png 、 l.png 、 r.png の4つを
C:\Users\kanrisya\Documents\Visual Studio 2010\Projects\3D\3D *(.vcxprojがあるディレクトリ)に追加もやりました。
プログラム文内にも要求はあったんですね。見落としてました。
しかし、このエラーは一体なんなんでしょうか…?
0792デフォルトの名無しさん
2011/11/26(土) 18:38:42.37なんかInputArrayとかOutputArrayとか見えるけど、それは2.3.1から導入されたクラスなんで2.2で出てくるわけないんだけどな
インクルードファイルへ2.3.1のパスが通ってたりすんじゃない?プロジェクトのプロパティのVC++ディレクトリを見てみれば
エラーがなんなのかはLNK2019を調べればわかる
0793デフォルトの名無しさん
2011/11/26(土) 18:39:29.94未解決の外部シンボル〜ってのは、使われてる関数の実体が見つからないってこと。
0794デフォルトの名無しさん
2011/11/27(日) 03:25:56.96http://opencv.jp/opencv-2svn_org/cpp/
0795デフォルトの名無しさん
2011/11/27(日) 03:28:33.740796デフォルトの名無しさん
2011/11/27(日) 15:42:51.17>>792なるほど、2.3.1から〜なんてあったんですね。たしかにインクルードファイルパス(2.3.1)
通したままでした。これが原因だったのでしょうか。直してきます!
>エラーがなんなのかはLNK2019を調べればわかる
ふむ! エラーで調べる、ですね。なんだか難しそうな響きです…挑戦してみます!
>>793
む、むずかしいです… でもご教授ありがとうございます!
>>794-795
おお! これは便利そうですね。大いに活用させていただきます。
教えて下さってありがとうございます!
……英語…?
とりあえずLNK2019エラーまわりから調べてきます!
0797デフォルトの名無しさん
2011/11/29(火) 10:58:11.721>sagi3D.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall cv::Mat::copyTo(class cv::_OutputArray const &)
const " (?copyTo@Mat@cv@@QBEXABV_OutputArray@2@@Z) が関数 "void __cdecl eular2rot(double,double,double,class cv::Mat &)"
(?eular2rot@@YAXNNNAAVMat@cv@@@Z) で参照されました。
1>sagi3D.obj : error LNK2019: 未解決の外部シンボル "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>
,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std
@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z) が関数 "void __cdecl stereoTest(void)" (?stereoTest@@YAXXZ) で参照されました。
***以下似たようなのが8行ほど
1>sagi3D.obj : error LNK2001: 外部シンボル ""public: virtual class cv::Mat __thiscall cv::_InputArray::getMat(int)const "
(?getMat@_InputArray@cv@@UBE?AVMat@2@H@Z)" は未解決です。
1>sagi3D.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall cv::_InputArray::getMatVector
(class std::vector<class cv::Mat,class std::allocator<class cv::Mat> > &)const " (?getMatVector@_InputArray@cv
@@UBEXAAV?$vector@VMat@cv@@V?$allocator@VMat@cv@@@std@@@std@@@Z)" は未解決です。
***以下似たようなのが12行ほど
1>C:\Users\kanrisya\documents\visual studio 2010\Projects\sagi3D\Debug\sagi3D.exe : fatal error LNK1120: 外部参照 29 が未解決です。
=ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ =
もう一度新規プロジェクトを立ち上げて同様(おそらく…)にしてやり直してみました。なんかPC起動の度にエラーが変わるような気がします…
(前はLNK2019のみだったのに…)
LNK2019については自分なりに調べてみました。まぁ、それでもよくはわからなかったのですが…
結局、lib等のリンクがうまくいっていないために参照できないと言っているのでしょうか?
0798デフォルトの名無しさん
2011/11/29(火) 11:03:58.500799デフォルトの名無しさん
2011/11/29(火) 11:10:18.55連投すみません。
気になったのですが、インクルードの設定は以下のみでよろしいのでしょうか?
#include <C:\OpenCV2.2\include\opencv2\opencv.hpp>
>>790様にご指摘いただきましたopencv_core220d.lib ,opencv_highgui220d.lib ,opencv_calib3d220d.lib
の各.libに対して以下のような入力が必要、そういったことは考えられるのでしょうか?
#include <C:\OpenCV2.2\include\opencv2\core\core.hpp>
#include <C:\OpenCV2.2\include\opencv2\calib3d\calib3d.hpp>
#include <C:\OpenCV2.2\include\opencv2\highgui\highgui.hpp>
他にもC:\OpenCV2.2\include\opencvにも各種.hファイルがあったのでそれも気がかりです。
初歩的な質問かもしれませんが、>>797の件、インクルードの設定、
どちらかお分かりの方で返答していただけると助かります。
0800デフォルトの名無しさん
2011/11/29(火) 11:19:04.53なるほど、やはりそれ関連のエラーということですか…
このプログラム(>>778)に関して必要となる.libは>>790様から3つだと
教えて頂き、以下のように設定を試みました。
#pragma comment(lib,"C://OpenCV2.2//lib//opencv_core220d.lib")
#pragma comment(lib,"C://OpenCV2.2//lib//opencv_highgui220d.lib")
#pragma comment(lib,"C://OpenCV2.2//lib//opencv_calib3d220d")
しかしながら安定のエラーです…
もしかしてまだ足りない.libがある、ということなのでしょうか…
このエラーはリンク失敗・不具合のときに出るのでしょうか?
必要.libが足りないときに出るのでしょうか?
ご教授いただけると幸いです。
0801デフォルトの名無しさん
2011/11/29(火) 11:32:23.05バージョンは直してね
#ifdef _DEBUG
#pragma comment(lib,"opencv_core232d")
#pragma comment(lib,"opencv_imgproc232d")
#pragma comment(lib,"opencv_highgui232d")
#pragma comment(lib,"opencv_ml232d")
#pragma comment(lib,"opencv_video232d")
#pragma comment(lib,"opencv_features2d232d")
#pragma comment(lib,"opencv_calib3d232d")
#pragma comment(lib,"opencv_objdetect232d")
#pragma comment(lib,"opencv_contrib232d")
#pragma comment(lib,"opencv_legacy232d")
#pragma comment(lib,"opencv_flann232d")
#else
#pragma comment(lib,"opencv_core232")
#pragma comment(lib,"opencv_imgproc232")
#pragma comment(lib,"opencv_highgui232")
#pragma comment(lib,"opencv_ml232")
#pragma comment(lib,"opencv_video232")
#pragma comment(lib,"opencv_features2d232")
#pragma comment(lib,"opencv_calib3d232")
#pragma comment(lib,"opencv_objdetect232")
#pragma comment(lib,"opencv_contrib232")
#pragma comment(lib,"opencv_legacy232")
#pragma comment(lib,"opencv_flann232")
#endif
0802デフォルトの名無しさん
2011/11/29(火) 15:59:18.900803デフォルトの名無しさん
2011/11/29(火) 16:13:52.45だからOutputArrayが出てくるってことは2.3.1のインクルードファイルを読み込んでるんだって
ヘッダファイルは2.3.1なのにライブラリが2.2だから型の合う関数が見つからないってエラー出してるんだろう
0804デフォルトの名無しさん
2011/11/29(火) 20:52:16.72わからなければ一度2.3.1の方アンインストールするといい
0805デフォルトの名無しさん
2011/11/29(火) 20:55:51.970806デフォルトの名無しさん
2011/11/29(火) 21:38:12.64インクルードパスから検索されちゃうんじゃね
0807デフォルトの名無しさん
2011/11/29(火) 21:41:46.840808デフォルトの名無しさん
2011/11/29(火) 21:42:57.990809デフォルトの名無しさん
2011/11/30(水) 03:15:00.18gcc hoge.c -I/home/foobar/project/hoge -O2 hoge
とか書いてあることがある
おまえら気をつけろよ
0810デフォルトの名無しさん
2011/11/30(水) 12:42:42.160811デフォルトの名無しさん
2011/11/30(水) 12:50:11.26つか>>767にあるインストールの際に参考にしたHPの影響だろう
0813デフォルトの名無しさん
2011/11/30(水) 14:46:15.42いやすまん、URL書きたくなかったんで767って書いちゃった
「OpenCV インストール」でググるとトップに出てくるししょうがないよ
0814デフォルトの名無しさん
2011/12/01(木) 09:19:30.88扱う変換は{X方向拡大,Y方向拡大,回転,並進}だけにしたい.
(Affine変換には歪(skew)があるが,この自由度はいらないので除きたい)
Affine変換なら線形な(cvSolveが使える)形の式にできるのですが,
上記の変換を考えると,そういう形の式にどうしてもできません…
なんとかして線形的に解く方法はないでしょうか?
0815デフォルトの名無しさん
2011/12/01(木) 09:50:31.66角度θ、スケールn% とか?
その場合だと、変換の順番や数によって答えはいくらでも出てくるから、一意に求めるのは無理だよね。
0816デフォルトの名無しさん
2011/12/01(木) 10:25:45.34要するに変換するために必要な値 です.
>角度θ、スケールn% とか?
のような個々の変形要素(?)毎の値が得られれば使いやすいですが,
変換後座標ベクトルV' = 変換行列M * 変換前座標ベクトルV
のM(例えばAffine変換なら2*3行列)の要素値の形でも構いません.
0817デフォルトの名無しさん
2011/12/02(金) 00:22:31.23M=[x*cos(r), -y*sin(r),t1]
[x*sin(r), y*cos(r),t2]
2x2の成分を眺めると、M(2,1)/M(1,1)=-M(1,2)/M(2,2)=tan(r)だから
M=[a,b,c]
[d,e,f]
拘束条件 a*b+d*e=0
として未知数6,拘束条件1のラグランジュ未定乗数法で解けば良い
0818デフォルトの名無しさん
2011/12/02(金) 06:34:05.79M=並進・回転・拡大
としたのはなぜ?
一般的ではあるけど。
shearってskewとも言うのか・・・
0819814
2011/12/02(金) 09:33:31.28ありがとうございます…しかし
>ラグランジュ未定乗数法で解けば良い
の部分が具体的にどうやって解くのかわかりません…
調べて見ると,各変数で偏微分した結果の連立方程式を
パラメタベクトル P = [a,b,c,d,e,f](転置) として
行列*P = λ*P
の形にして,λを最小固有値として解く,というのがあったのですが
どう頑張っても自分には↑のような形にできないのですが…
それとも他の解き方があるのでしょうか?
(あと,自分で考えた条件だと a*d+b*e=0 になったのですが同じこと?)
0820デフォルトの名無しさん
2011/12/02(金) 11:31:40.550821デフォルトの名無しさん
2011/12/02(金) 12:27:24.31Affine変換や射影変換ではなく,
変形を 並進・回転・拡大 だけに制限したいのです.
形が歪まないで欲しい(長方形は変換後も長方形)というか.
データの実際の変形はアフィン変換や射影変換だったとしても,
それをできる限り近似する 並進・回転・拡大 だけの変換 を得たいのです.
0822デフォルトの名無しさん
2011/12/02(金) 17:15:27.85それと、回転や拡大の操作の順序は決まっているのか、どうなのか。順序が決まっていて一回ずつなら、簡略化できるかもしれない。
0823デフォルトの名無しさん
2011/12/02(金) 18:52:21.75それを分けたら、長方形が正方形や平行四辺形になったりするよ。
0824デフォルトの名無しさん
2011/12/02(金) 20:21:33.65Windows7(32bit) Visual Studio C++ 2008にOpenCV.ver2.1を入れている環境で
まずは簡単なエッジ抽出プログラムを組んでみようと思ってます
試しにttp://img10.shop-pro.jp/PA01048/330/product/7862124.jpgの服ボタンの画像を
bmp方式で保存した後に以下のようなソースコードで輪郭抽出を行った所、内部の輪郭も抽出されました
欲しい部分は外側の円部分であり、内部の余分なエッジを除去したいのですが何かいい手法はありますか?
IplImage* img = cvLoadImage("C:\\Users\\7862124.bmp", CV_LOAD_IMAGE_GRAYSCALE); //グレイスケール画像読み込み
IplImage* img2 = cvCloneImage (img);
cvSmooth(img,img2,CV_GAUSSIAN,5); //ガウシアンフィルタ
IplImage* img3 = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
cvCanny(img2,img3,50,200); //Cannyエッジ
cvNamedWindow("OpenCVTest",CV_WINDOW_AUTOSIZE); //画像出力用のウィンドウを作成します
cvShowImage("OpenCVTest",img3); //ウィンドウに画像を表示します
cvWaitKey(0); //何かキーが押されるまで待ちます
cvReleaseImage(&img); //リソースを開放します。
cvDestroyWindow("OpenCVTest");
0825デフォルトの名無しさん
2011/12/02(金) 21:39:29.76ラグランジュの未定乗数方使わなくても、
(a,d)固定して、(b,e)について最小化(これは行列演算で一発でとけるよね)
(b,e)固定して、(a,d)について最小化(これは行列演算で一発でとけるよね)
上を何回も繰り返す
ってのをやっても、2乗誤差なら最適解に収束するね。
ラグランジュ未定乗数法が謎で抵抗あるなら、こっちやれば?
0826デフォルトの名無しさん
2011/12/02(金) 21:44:21.16それはラグランジュの未定乗数法で目的関数を設計したら、たまたま固有値問題に帰着できる場合があるってだけ。
>>817の定式化では固有値問題にならないんじゃね。
もしくは、制約なしでMを学習したあとで、2x2の回転行列部分を強引に直行化しちゃえば?
微妙にゆがんでるだけなら、大体それでOKでしょ。
強引に直行化する方法は、↓にのってるよ。固有値分解できれば出来る。
http://home.hiroshima-u.ac.jp/tamaki/study/20090924SIS200923.pdf
0827デフォルトの名無しさん
2011/12/02(金) 23:01:12.35http://opencv.jp/sample/object_tracking.html
0828デフォルトの名無しさん
2011/12/03(土) 00:26:44.10行列計算はOpenCVが便利だと聞きました
白黒のグレイスケール画像を左から見ていき初期変動部分だけ残すような計算がしたいです
少し見辛いですが下の左行列を右行列として変換するような感じです
0 0 0 1 0 0 0 0 1 0
0 0 1 0 1 0 0 1 0 0
0 0 1 1 1 → 0 0 1 0 0
0 1 0 1 1 0 1 0 0 0
0 0 1 1 0 0 0 1 0 0
行を左から走査していき最初に変動した列の値だけを残して
残りは全て0に変更して取り除くような演算を行いたいです
単純にfor文で組めばいいのでしょうか?
0829デフォルトの名無しさん
2011/12/03(土) 00:45:31.340830デフォルトの名無しさん
2011/12/03(土) 01:16:39.80では、最初の1はifで検出を行えばよいのでしょうか?
その後、その1以降を各行列にそれぞれ=0と指定し続ければいいのですか?
0 0 0 1 0 0 0 0 1 0
0 0 1 0 1 0 0 1 0 0
↓もし1ならば、↓残りは全て=0
0 0 1 1 1 → 0 0 1 0 0
0 1 0 1 1 0 1 0 0 0
0 0 1 1 0 0 0 1 0 0
といった感じで
0831デフォルトの名無しさん
2011/12/03(土) 01:17:01.190832デフォルトの名無しさん
2011/12/03(土) 01:17:43.75その処理内容に特化した関数は知らないしありそうにもないと思うので、単純にfor+memset()でいいと思います。
0833デフォルトの名無しさん
2011/12/03(土) 01:22:27.040834デフォルトの名無しさん
2011/12/03(土) 01:37:56.72線形一発とはいかないけど、非線形最適化をしない方法を導出してみた。
回転行列をR、スケール行列(対角行列)をS、平行移動ベクトルをt、変換前後の点iを前mi、後ni、点の数はN個、行列転置を'、逆行列をinv()、L2ノルムを|| ||で書くよ。
求めたいのは、誤差e= sum || R*S*mi+t-ni ||^2 を最小化するR、S、t。
まずeをtで偏微分すると、
de/dt = sum ( ni-R*S*mi-t )
de/dtはゼロベクトルだから、回転前後の重心をmg、ngとおくと
t=1/N*sum(ni)-1/N*RS*sum(mi)
=ng-R*S*mg ...(1)
tがRとSの関数であるので、RとSを求めて最後にtを求めることにする。
(1)をeに代入すると、
e=sum || R*S*(mi-mg)-(ni-ng) ||^2
pi=mi-mg、qi=ni-ngとおくと、
e=sum || R*S*pi-qi ||^2
0835デフォルトの名無しさん
2011/12/03(土) 01:38:47.84de/dS=S*sum(pi*pi')-R'*sum(qi*qi')
de/dSはゼロ行列だから、P=sum(pi*pi')、Q=sum(qi*qi')とおくと
de/dS=S*P-R'*Q=0
S*P=R'*Q
S'*S=inv(P')*Q'*Q*P...(2)
Sは対角行列だから、(2)の対角成分の平方根がそれぞれx,y方向のスケールに相当する。
次にS*P=R'*Qより
R=( S*P*inv(Q) )'
だけど、Rは行列式が1の直交行列だから
U*D*V'=( S*P*inv(Q) )'...(3)
と特異値分解して
R=U*diag(1,det(U*V'))*V'...(4)
が欲しい回転行列R。det(A)は行列Aの行列式で、diag(a,b)はaとbが成分の対角行列ね。
0836デフォルトの名無しさん
2011/12/03(土) 01:39:33.92計算順で行くと、(2)->(3)->(4)->(1)。
気をつけるのは、miとniにノイズが多いと(2)が必ずしも対角行列にならなくて、
誤差の大きいSからRとtを計算すると誤差の影響が大きくなっていく。
だからより高精度にしたいなら上記計算で求めたのを初期値にして非線形最適化かな。
0837デフォルトの名無しさん
2011/12/03(土) 02:12:39.47最初にアフィン変換行列を求めて、その2x2の部分行列をMとすると、
e=||M-RS||^2 を最小化するRとSを求めることになる。平行移動はアフィン変換そのままを採用。
ここで|| ||はフロベニウスノルムね。
de/dS=S-R'*M=0だからS=R'*M
S'*S=M'*MよりM'*Mの対角成分の平方根をスケールにする。
R=inv(S)*MよりU*D*V'=inv(S)*Mと特異値分解して
R=U*diag(1,det(U*V'))*V'
こっちの方が楽だね。アフィン変換はOpenCVに求める関数あるし。
どっちの誤差が大きくなるかはわかんないけど。
ところで>>825って収束時に拘束条件満たすの?
0838デフォルトの名無しさん
2011/12/03(土) 02:14:32.51平行移動の自由度2、拡大縮小の自由度1(XYのスケールが同じ)、回転自由度1の4自由度だったら、
min|| q-Rp-t ||^2
を、Rとtについて解けばよい。
R=|x y|
|-y x|
とパラメタライズすればよくね?
0839デフォルトの名無しさん
2011/12/03(土) 02:24:05.17>>825が拘束条件満たすかということだけど、
(a,d)固定して、(b,e)について最小化をするときに、a,dが定数だから、b,eの1次等式制約になるでしょ。
eをbで表せば、目的関数が変数一個(e)の2次式になって、制約なしの形になる。
これなら極値は簡単に求まるよね。
目的関数が2次式の場合、等式制約を満たすように2変数ペアで動かしながら最適化つーのは、よくやるね。SVMとかでもやってる。
0840デフォルトの名無しさん
2011/12/03(土) 02:49:39.79それは普通の相似変換じゃん
814が欲しいものとは違う
>>839
そもそも最適解に収束することが約束されてんの?
もしかして交互法ってやつ?よく知らないから文献あったら教えて
0841デフォルトの名無しさん
2011/12/03(土) 08:54:56.97XYのスケール比率が強烈に違ったりしなければ、普通に良さげな解がでるんでね?
0842デフォルトの名無しさん
2011/12/04(日) 02:34:43.410843デフォルトの名無しさん
2011/12/04(日) 06:16:21.97そうだな。まぁ、2次の非線形制約が付いてる時点で、局所解があるからね。
ラグランジュの未定乗数法つかっても、そこは同じだし。
>>836も言ってるけど、この辺のやり方で初期値計算して、そっから先は反復計算するしかねーな。
0844デフォルトの名無しさん
2011/12/05(月) 05:36:59.12その辺勉強したいんだけど、オススメの本があったら教えてくれ。入門的なの。
0845デフォルトの名無しさん
2011/12/05(月) 08:21:28.29数学の話はその人がどれだけの知識を前提にするかで全然違うから
0846デフォルトの名無しさん
2011/12/05(月) 09:57:30.91ソースなら読めるんだが、数式になると訳わからんw
0847デフォルトの名無しさん
2011/12/05(月) 10:13:40.66前提で違うのはたしかにその通りだ。でかい本屋に行ってじっくり探してみるよ。
0848デフォルトの名無しさん
2011/12/05(月) 10:56:53.15二次計画問題、線形計画問題、整数計画法、非線形最適化
とかでぐぐってみては?
0849デフォルトの名無しさん
2011/12/05(月) 11:55:29.76Numerical Recipes in Cは?
0850デフォルトの名無しさん
2011/12/05(月) 22:44:18.60あくまで理論と実装の確認に使うだけならオススメ。
0851デフォルトの名無しさん
2011/12/06(火) 13:59:05.34二線のサンプル画像をハフ変換による直線検出を行い
得られた直線a,bの交点の計算は最終的に線aの2点a1,a2と線bの2点b1,b2を
x = - (b1 - b2) / (a1 - a2)
y = (a1*b2 - a2*b1) / (a1 - a2)
で算出する事によって二線の交点x,yを出すと思いますが
傾きを求めるのに用いる合計4点はどうやって取得すればいいのでしょうか?
できれば二線の端と端の座標を取得してそこから計算を行いたいです
0852デフォルトの名無しさん
2011/12/07(水) 05:57:05.821画素毎に見ていって値を取るしかないのでしょうか
0853デフォルトの名無しさん
2011/12/07(水) 07:13:49.44それ以外にどんな方法があるのかい?
cvMat::at が遅いとかなら「複数枚」の画像を BYTE の(一重でも多重でもいいけど)配列に
読み込んでしまってから処理すれば相当速くなりますおし
0854デフォルトの名無しさん
2011/12/07(水) 09:05:50.50OpenCVが返すのが角度なんだからそっから4点を求めるより、そのまま傾きを求めるほうが直接的
0855851
2011/12/09(金) 01:33:00.92ありがとうございます
端と端の座標を取得したいのは線分でない列を別領域として分けたいからです
図にすると以下のような感じになります
領域(その他)
-------------------------------------------------
/
/
/ 領域(a)
/
-------------------------------------------------
交点 領域(その他)
-------------------------------------------------
\
\ 領域(b)
\
\
-------------------------------------------------
領域(その他)
そのために線分の端から端を座標取得したいのです
0856デフォルトの名無しさん
2011/12/09(金) 05:39:53.95普通は連立方程式のまま解くと思う。
0857デフォルトの名無しさん
2011/12/11(日) 23:13:39.82透明領域に同色を塗っとくとか無しで
0858デフォルトの名無しさん
2011/12/12(月) 09:43:30.610859デフォルトの名無しさん
2011/12/12(月) 10:34:15.16ない.アルファチャンネル付き画像の扱いのバグは取れてないので各自工夫して回避する以外ない.
0860デフォルトの名無しさん
2011/12/12(月) 12:02:18.26了解、自分で書きますw
0861デフォルトの名無しさん
2011/12/13(火) 19:36:05.06CvMat* points1; CvMat* points2;
CvMat* status; CvMat* fundamental_matrix;
points1 = cvCreateMat(1,point_count,CV_32FC2);
points2 = cvCreateMat(1,point_count,CV_32FC2);
status = cvCreateMat(1,point_count,CV_8UC1);
/* ここで点座標を埋めます ... */
for( i = 0; i < point_count; i++ )
{
points1->data.fl[i*2] = <x,,1,i,,>;
points1->data.fl[i*2+1] = <y,,1,i,,>;
points2->data.fl[i*2] = <x,,2,i,,>;
points2->data.fl[i*2+1] = <y,,2,i,,>;
}
fundamental_matrix = cvCreateMat(3,3,CV_32FC1);
int fm_count = cvFindFundamentalMat( points1,points2,fundamental_matrix,
CV_FM_RANSAC,1.0,0.99,status );
と書いてありました。
<x,,1,i,,>といった部分にどのように画像から求めた座標を埋めていくのかがわからず、作業が進みません。
また、カンマ間が空欄となっている部分(第2、5要素)には何を入れたら良いのでしょうか?
初歩的な質問かもしれませんが、わかる方がいらっしゃいましたら教えてください。
0862デフォルトの名無しさん
2011/12/13(火) 19:39:35.99書き込みに失敗してしまいました。すみません。
openCV2.2を使って、F行列を求めたいと思い
cvFindFundamentalMat関数を利用したいのですが、リファレンスを見た結果、
上のように書いてり、質問させていただきました。
0863デフォルトの名無しさん
2011/12/13(火) 23:50:51.71ただのスカラーだから第2、5要素なんてない
F行列が何か知らずに関数の利用だけしようとするからわけがわからなくなる
0864デフォルトの名無しさん
2011/12/14(水) 07:13:58.19そのときの閾値だけを調べる方法ってありますか?
閾値を整数で出力したいのですが
0865デフォルトの名無しさん
2011/12/14(水) 19:34:58.620866デフォルトの名無しさん
2011/12/14(水) 19:51:07.39回答ありがとうございます。
自分でも一応F行列については調べて勉強はしたんですが、勉強不足だったみたいです。
もう一度勉強し直します。
0867デフォルトの名無しさん
2011/12/15(木) 02:30:27.60■■■■■■■■■■■ ■■■■
■■■ ■■■■■■ ■■■
■■ ■■■■■■ ■■■■
■■ ■■■■■■ ■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
二値化した画像でこんな感じになっている時
黒い領域の輪郭をとって、内側に開いた白い穴を埋めたい、という時はどうすれば良いのでしょうか
クロージングでは消えないサイズの穴でどうしたものかわかりません
0868デフォルトの名無しさん
2011/12/15(木) 05:43:22.49cvthresholdの返り値が閾値
0869デフォルトの名無しさん
2011/12/15(木) 08:15:54.12>>868
ありがとうございました
0870デフォルトの名無しさん
2011/12/15(木) 14:40:26.82「内側」の定義によると思うけど…
仮に「白い領域であって,領域内の全ての画素位置が画像縁でないもの」を「内側」とみなすとしたら
白い領域全てについてそのことを調べて,内側なら埋めればよいのでは?
0871デフォルトの名無しさん
2011/12/15(木) 16:51:39.620872デフォルトの名無しさん
2011/12/15(木) 18:08:22.02ヒント:ラベリング
0873デフォルトの名無しさん
2011/12/15(木) 19:22:52.020874デフォルトの名無しさん
2011/12/16(金) 00:13:50.47マジか。。1か月前に1.1版買ってしまったよ。。
0875デフォルトの名無しさん
2011/12/16(金) 00:46:29.990876デフォルトの名無しさん
2011/12/16(金) 00:48:09.050877デフォルトの名無しさん
2011/12/16(金) 00:51:43.080878デフォルトの名無しさん
2011/12/16(金) 04:44:00.680879デフォルトの名無しさん
2011/12/16(金) 11:06:51.75説明読むと実用的な使い方を重視した本かな
0880デフォルトの名無しさん
2011/12/16(金) 22:45:05.21http://wiki.livedoor.jp/mikk_ni3_92/d/OpenCV%3a%3a%a5%af%a5%ea%a5%c3%a5%af%c3%cf%c5%c0%a4%c8%c0%fe%c9%c1%b2%e8
上記のページのプログラムを参考にして4回クリックすると最初の2回のクリックで1つめの直線
後の2回のクリックで2つめの直線をcvLineで描くようなプログラムを組みました
これの発展として手動入力した2直線の交点をcvCircleで表示させるようなプログラムを作りたいのですけど
直交座標系ではない行列上ではどういう計算を行えばよいのでしょうか?
0881デフォルトの名無しさん
2011/12/17(土) 00:00:56.760882デフォルトの名無しさん
2011/12/17(土) 02:22:41.290883デフォルトの名無しさん
2011/12/17(土) 18:03:15.11質問いいでしょうか
createsamples.exeで一つの画像からnum100のvecファイルを作成したのですが、
このvecファイルを5個ほど用意して一つに結合するやり方を教えてください。
num100のvecファイルが5個 → num500のvecファイルが1個にしたいのです
>>290を参考にしたのですがいまいち良くわからなかった…
ファイル結合ソフトを使用して結合しても、num100としか認識してくれません
アドバイスおねがいします
0884デフォルトの名無しさん
2011/12/19(月) 00:11:04.86関数の中身は見ることができますか?
0885デフォルトの名無しさん
2011/12/19(月) 09:15:13.85マスク画像にも同じ変換かけて
結果をANDとかORとかする
0886デフォルトの名無しさん
2011/12/19(月) 10:39:23.14borderModeの説明に思いっきり書いてあるじゃないか
0887デフォルトの名無しさん
2011/12/19(月) 14:22:43.13いちいちあるか分からないのに構造体みるほど暇じゃないんだよ
0888デフォルトの名無しさん
2011/12/19(月) 14:39:31.510889デフォルトの名無しさん
2011/12/19(月) 14:44:44.760890デフォルトの名無しさん
2011/12/19(月) 15:04:58.970891デフォルトの名無しさん
2011/12/19(月) 20:42:17.48a = cvPoint(x-y,x+y)といったような指定でもいいんですよね?
0892デフォルトの名無しさん
2011/12/20(火) 14:47:00.222次元のアフィン変換を行えばよいのでしょうか?
0893デフォルトの名無しさん
2011/12/20(火) 16:05:17.52来年から新しく勉強を始める予定です
年末の休みに参考書を見ながら勉強したいのですが何かオススメはありますか?
0894デフォルトの名無しさん
2011/12/20(火) 20:03:20.814冊くらいあった気がするが
0895デフォルトの名無しさん
2011/12/20(火) 20:39:03.10>>873
0896デフォルトの名無しさん
2011/12/20(火) 22:27:52.65cvWriteFrameを実行するとエラーになってしまいます。コンソールでは問題なくできたのですが,何が問題なのかわかるかたいらっしゃいませんでしょうか?
0897デフォルトの名無しさん
2011/12/21(水) 09:37:42.53次にVideoWriterの設定は間違っていないか?(特にcodecやフレームレート、最初は無圧縮にしとけ)
0898デフォルトの名無しさん
2011/12/21(水) 09:53:37.20VideoWriterの設定も丸写しなんですが...
WriteFrameの第一引数を0にしたらエラーにはならないようでした(もちろん保存はされませんが...)
0899デフォルトの名無しさん
2011/12/21(水) 10:48:20.24丸写しって言われてもわからん
0900デフォルトの名無しさん
2011/12/21(水) 17:31:28.96namespaceの外側に記入
CvCapture* capture;//画像
CvVideoWriter* rec;
IplImage* srcImage;
タイマーのイベント内に記入
capture = cvCaptureFromCAM(0);
srcImage = cvQueryFrame(capture);
cvCreateVideoWriter("movie.avi",CV_FOURCC('M','J','P','G'),50,cvSize(Image->width,Image->height),1);
と記入しています。
0901デフォルトの名無しさん
2011/12/21(水) 21:39:03.410902デフォルトの名無しさん
2011/12/21(水) 23:15:57.62cvCreateVideoWriterをrecに代入してないのは記入忘れだよね?
とりあえずCV_FOURCC('M','J','P','G')をCV_FOURCC('D','I','B',' ')にしてみたら?
0903デフォルトの名無しさん
2011/12/21(水) 23:57:49.740904デフォルトの名無しさん
2011/12/22(木) 08:36:43.71みなさんありがとうございました。質問の仕方も勉強します。
0905デフォルトの名無しさん
2011/12/22(木) 09:36:26.95>>897で答え出てたなw
0906デフォルトの名無しさん
2011/12/22(木) 23:47:45.45気が向いた方,どなたか教えて下さい.
OpenCVで探索範囲を限定したテンプレートマッチングをするにはどうしたらいいでしょうか?
探索範囲だけ切り抜くしかありませんか?
cv::goodFeaturesToTrackのようにROIで範囲を限定してやることはできないでしょうか?
0907デフォルトの名無しさん
2011/12/23(金) 00:56:28.160908デフォルトの名無しさん
2011/12/23(金) 01:03:40.05教えて頂けると幸いです.
どうぞ宜しくお願い致します.
0909デフォルトの名無しさん
2011/12/23(金) 01:31:40.440910デフォルトの名無しさん
2011/12/23(金) 01:55:01.15それなりに探してはみたのですが,
中々,適当な解答が得られず困っています.
0911デフォルトの名無しさん
2011/12/23(金) 04:47:52.71日本人VS韓国乞食
(2011年現在) 日本人 朝鮮猿
ノーベル賞(自然科学分野) 15人 0人
ノーベル賞(人文学分野) 2人 0人
フランクリン・メダル(科学等) 7人 0人
ボルツマン・メダル(物理学) 2人 0人
フンボルト賞(人文、理、工、医、農) 9人 0人
キッピング賞(化学) 5人 0人
クラフォード賞(天文学等) 2人 0人
ブルーノ・ロッシ賞(天文学等) 2人 0人
IEEEマイルストーン(電子技術) 14件 0件
ウィリアム・ボウイ・メダル(地質学) 2人 0人
ホロウィッツ賞(生物学) 1人 0人
コッホ賞(医学) 6人 0人
ラスカー賞(医学) 6人 0人
ガードナー国際賞(医学) 10人 0人
ウルフ賞(科学、数学、医学、芸術) 11人 0人
プリツカー賞(建築) 5人 0人
フィールズ賞(数学) 3人 0人
コール賞(数学) 4人 0人
ガウス賞(数学) 1人 0人
ショック賞(数学・芸術) 3人 0人
ピューリッツァー賞(報道) 3人 0人
0912デフォルトの名無しさん
2011/12/23(金) 12:39:37.05なんでこれができない?
0913デフォルトの名無しさん
2011/12/23(金) 21:01:02.50有難うございます.
おかげさまでできました.
でも,オフセットは自分で足さなきゃならないんですね
0914デフォルトの名無しさん
2011/12/29(木) 11:39:05.69ublasより数倍速い気がするんだけど
気のせい?
0915デフォルトの名無しさん
2011/12/29(木) 12:46:06.33ベンチマークとれや
0916デフォルトの名無しさん
2012/01/02(月) 16:16:22.34サイズの違う画像を合成する(小さい画像を上から重ねる)
方法を教えていただけませんか?
同じサイズなら下のリンクを参考にできたんですけど…
ttp://imagingsolution.blog107.fc2.com/blog-entry-246.html
ROIで範囲を指定すればいいっぽい所まで分かったんですけど、
ROIの使い方もよく分かりません。
よろしくお願いします。
0917デフォルトの名無しさん
2012/01/02(月) 21:38:22.43自分を持ち上げるな。
>超初心者
初心者超えたら中堅だろ。
0918デフォルトの名無しさん
2012/01/03(火) 02:24:26.020919デフォルトの名無しさん
2012/01/03(火) 16:40:08.740920デフォルトの名無しさん
2012/01/03(火) 21:43:20.18double area = fabs(cvContourArea(Contour, CV_WHOLE_SEQ));
として輪郭内の面積を求めたいのですが
引数が足りないとエラーが出てしまいます
入力候補には「int oriented = 0」なるものが出てくるのですが、これはなんなのでしょうか
0921デフォルトの名無しさん
2012/01/04(水) 21:20:00.64どんなエラーなのかよくわからんが、Contourの中身が空なんじゃね?
0922デフォルトの名無しさん
2012/01/05(木) 11:07:37.66cvContourArea()は手元のOpenCV1.1のドキュメントだと2引き数だけど、
cvContourAreaとorientedで検索すると3引き数のcvContourArea()が見つかる。
そこの説明によると、
--
If zero, the absolute area will be returned. Otherwise the returned value mighted be negative
--
ということだ。
なので、
--
double area = cvContourArea(Contour, CV_WHOLE_SEQ, 0);
--
で医院で内科医?
0923デフォルトの名無しさん
2012/01/05(木) 11:08:48.18どんなエラーって、引き数が足りないと書いてあるじゃん。開き盲?
0924デフォルトの名無しさん
2012/01/05(木) 11:35:06.01無くなった?
0925デフォルトの名無しさん
2012/01/05(木) 13:12:52.35ライブラリに頼ろうとするな
自分で画素を直接操作した方が楽
0926デフォルトの名無しさん
2012/01/05(木) 23:04:24.64多クラスの識別をひとつの識別器で行なう場合の CvSVMParams の重み設定はどのようにすればよいでしょうか?
クラス A B C
データ1 2 4 0 1
データ2 0 1 3 1
データ3 1 2 2 2
・・・
データn 0 2 3 2
上記のデータ例で Class列を正解クラス(クラスは0〜2の3クラス)とし,A〜Cを特徴量として学習させる場合,
1.クラス0,クラス1,クラス2の順で重みを設定する(クラス番号順)
2.クラス2,クラス0,クラス1の順で重みを設定する(読み込みデータの出現順)
のうちどちらでしょうか?
リファレンスを確認してみましたが,記載されていませんでした.
よろしくお願いします.
0927デフォルトの名無しさん
2012/01/06(金) 15:12:45.84複素数群Csの絶対値を結果受取用vector ABSsに入れる関数を以下のように書いたところ…
void Do( const std::vector< std::complex<double> > &Cs, std::vector<double> &ABSs )
{
ABSs.resize( Cs.size(), 0 );
std::transform( Cs.begin(), Cs.end(), ABSs.begin(), std::abs<double> );
}
普通はコンパイルが通るのですが,OpenCV2.3.1のヘッダを
#include "OpenCV2/opencv.hpp"
としてインクルードすると何故かコンパイルエラーになってしまいます.
(error C2914: 'std::transform' : 関数の引数があいまいなため テンプレート 引数を減少できません。
みたいなエラーがたくさんでる)
とりあえずの対処方法として当該関数を他の翻訳単位に移動させれば回避できそうではあるのですが
気持ち悪いです.
原因等わかる方おられましたら ご教授願いたくよろしくお願いいたします.
0928デフォルトの名無しさん
2012/01/06(金) 18:44:03.03OpenCV2.3.1かな
"opencv2/contrib/retina.hpp"でincludeしてる
#include <valarray>
が原因なような気がする
0929デフォルトの名無しさん
2012/01/08(日) 03:51:35.88特徴点を検出して、エッジの強度でマッチングさせたいのですが。。。
0930デフォルトの名無しさん
2012/01/08(日) 08:31:21.44何か名前が衝突してるんじゃないか
どこかのヘッダの using namespace を外せばうまくいくかもね。
0931デフォルトの名無しさん
2012/01/09(月) 09:57:00.37欲しいのはこんなのです。
pc上部にあるカメラから目の位置を特定して、白眼の中の黒眼の位置から向いてる方向を判断する。
少しずつその方向にカーソルを移動させる。瞳孔位置判定してピンポイントに座標判断なんて高度なやつではない。
頭位置は完全固定、キャリブレーションで画面4すみの眼の形を学習する。
似たようなやつありますか?
0932デフォルトの名無しさん
2012/01/09(月) 12:20:13.23沢山ありそうだが。たとえば
ttp://www.youtube.com/watch?v=qgmONlusBV8
0933デフォルトの名無しさん
2012/01/09(月) 12:58:04.56早速試してみたんだが、軽くてすげぇなこれ。キャリブレーション部分がdirectshowと顔検出がopenCVでつくってあるのかな。
ただ、マウスカーソル動かないのが難点だ。。
0934デフォルトの名無しさん
2012/01/10(火) 13:50:55.19ありがとうございます.
valarray単体includeでも同エラーが発生することを確認しました.
valarrayをincludeすることによって何が起こるのかはさっぱりですが…
とりあえず opencv.hpp を使わずに,
ちゃんとそのcppに必要最小限なヘッダだけをincludeすれば今回は対処できそうです.
0935デフォルトの名無しさん
2012/01/13(金) 23:09:59.54オブジェクト検出を用いて動画中の車を
検出しようと考えているのですが、そこから
画面内から画面外へ通過した物体の数をカウントするには
どうすればいいでしょうか?
0936デフォルトの名無しさん
2012/01/14(土) 01:40:03.92画面ないにラインを設けなさい。ラインをまたいだらカウント
0937デフォルトの名無しさん
2012/01/15(日) 21:48:11.030938デフォルトの名無しさん
2012/01/16(月) 10:38:01.35神奈川なら十分日帰り出来る距離だろ
0939デフォルトの名無しさん
2012/01/20(金) 00:12:19.930940デフォルトの名無しさん
2012/01/20(金) 07:52:47.70ソースならインストールプロジェクト実行時にヘッダーファイルがコピーされるようになってる
0941デフォルトの名無しさん
2012/01/21(土) 09:39:35.400942デフォルトの名無しさん
2012/01/21(土) 12:39:44.04http://opencv.jp/cookbook/opencv_img.html#id50
0943デフォルトの名無しさん
2012/01/23(月) 08:20:43.37まだ2.2を使っている
2.3を本格的に使ってる人いる?
0944デフォルトの名無しさん
2012/01/23(月) 08:29:04.060945デフォルトの名無しさん
2012/01/23(月) 08:33:38.85いつかインターフェイス変更されそうで怖いから
今だにCで使ってる
0946デフォルトの名無しさん
2012/01/23(月) 09:50:04.06trunk 追いかけてる.不安定さはあんまり観じないな.ハードウェアとかファイルIOまわりで込み入ったことしないせいだと思うけど.
0947デフォルトの名無しさん
2012/01/23(月) 11:31:11.61機能的に満足してるから、様子見してる間に中身だけどんどん変わってった感じ
0948デフォルトの名無しさん
2012/01/23(月) 12:26:24.76のメンバー関数ぐらいは固定で変わらないと信じたい
0949デフォルトの名無しさん
2012/01/23(月) 12:35:28.83ありがとー。
使い方がまだよくわからない
0950デフォルトの名無しさん
2012/01/24(火) 11:27:48.94よくわからないなら蝶本読むか買ってみるのもいいよ
図解で詳しく解説してるし
0951デフォルトの名無しさん
2012/01/25(水) 00:16:45.400952デフォルトの名無しさん
2012/01/25(水) 23:03:23.83以下のプログラムなのですがコンパイルは出来るのですが実行したところ
r6010 abortと表示されて画面が表示出来ませんでした。
画像の位置も問題なく、�Aのところでエラーが出ているようなのですが分かりませんでした。
もしよろしければアドバイスお願いします。
http://codepad.org/O7TqnhA6
0953デフォルトの名無しさん
2012/01/25(水) 23:21:16.03m.chiebukuro.yahoo.co.jp/detail/q1072179035
0954デフォルトの名無しさん
2012/01/26(木) 01:02:24.20C:\\opencv\\data\\haarcascades\\haarcascade_frontalface_alt.xml
にファイルはあるの?
0955デフォルトの名無しさん
2012/01/26(木) 01:44:02.25場所もカレントディレクトリーにコピーしてみたりと色々とやってるんですが
改善が見られず他に原因が分からないのでどうしようもない状態です。
ただもう少し頑張ってopenCVの設定を見直してみようと思います。
回答いただきありがとうございました。
0956デフォルトの名無しさん
2012/01/26(木) 05:16:11.96cvCalcHist
cvCalcBackProject
cvSplit
cvInRanges
を呼び出すと、呼び出す順番に関わらずcv::Exceptionを投げてきてプログラムが終了してしまいます。
openCVの以前のバージョンで試してみたりもしたんですが、解決することが出来ませんでした。
試しに、これらの関数をコンストラクタや別の処理の中で実験的に呼び出してみても、それぞれの箇所で同様にアクセス例外を投げてきましたので、
処理の流れ自体に問題があるとは考えにくいです。
解決策としてはどのような方法が考えられますか?知恵をお貸しください。
0957デフォルトの名無しさん
2012/01/26(木) 09:15:45.18一つ一つ関数の呼び出し引数の確認と原因絞りこみが必要。今貴方がわかっている現象だけじゃエスパーできないっす
0958デフォルトの名無しさん
2012/01/26(木) 09:32:05.22Debug コンパイルなのにリリース用のライブラリをリンクしてる,
もしくはその逆.
とか?
0959デフォルトの名無しさん
2012/01/26(木) 22:43:02.10もしかしてマルチスレッドとマルチスレッドDLL併用してる?
0960デフォルトの名無しさん
2012/01/29(日) 21:56:19.610961デフォルトの名無しさん
2012/01/30(月) 22:13:41.43単眼での物体距離認識libraryは作れるのかな
0962デフォルトの名無しさん
2012/01/31(火) 01:26:21.51解決策についてアドバイスをお願いします。
■現象
cv::imshow()で画像を表示しようとするとプログラムが落ちる
■環境
・Windows 7 32bit
・OpenCV 2.3.1
・MinGW 20111118 (gcc 4.6.1, g++ 4.6.1)
・CMake 2.8.6
■インストール方法
1. MinGWのインストーラ(mingw-get-inst-20111118.exe)から C Compiler, C++ Compiler,
MSYS Basic System, MinGW Developer ToolKit をインストール (インストールフォルダは C:\MinGW)
2. C:\MinGW\bin にパスを通す
3. OpenCV-2.3.1-win-superpack.exe を取ってきて展開
4. cmake-gui で Configure → MinGW Makefiles を選択、コンパイラは1.で入れた gcc, g++ を
設定して Configure → Generate (インストールフォルダはC:\opencv, オプションはデフォルトのまま)
5. コマンドプロンプトで mingw32-make, mingw32-make install してインストール
6. C:\opencv\install\bin 以下にあるファイル(*.dll, *.exe)をパスが通ってるフォルダに全部コピー
■コンパイル・実行
コマンドプロンプトから http://tinypaste.com/011cb45a をコンパイルして実行
$ g++ foo.cpp -o foo.exe -IC:\opencv\install\include -LC:\opencv\install\lib -lopencv_core231 -lopencv_highgui231
$ foo.exe
実行すると hoge, fuga までが表示され、タイトルバーが「Test」のウィンドウが表示される(背景はグレーっぽい色)。
直後に「foo.exeは動作を停止しました この問題の解決策を確認しています...」というメッセージが表示され、プログラムが終了する。
-lでOpenCVのライブラリ全部設定したりMSYSからコンパイルしたりも試したけど結果は同じでした。
GUIを使わないこんなの http://tinypaste.com/d901ce69 だと普通に動くんですが…。
0963デフォルトの名無しさん
2012/01/31(火) 03:40:48.39"Test"っていうWindowsがnamedWindowされてないからでは
0964デフォルトの名無しさん
2012/01/31(火) 15:19:08.01片目瞑っても大体の距離はわかるから、不可能では無いと思う
実際にやろうとすると、模様や影からパターンで推測になるだろうから、膨大な計算量になりそうだけども
0965デフォルトの名無しさん
2012/01/31(火) 17:00:52.86クモがやっている方式は
安物のカメラで使われているのオートフォーカス(コントラスト方式)とどのような違いがあるの?
0966デフォルトの名無しさん
2012/01/31(火) 20:15:40.250967966
2012/01/31(火) 20:56:09.980968デフォルトの名無しさん
2012/01/31(火) 21:18:29.32ピクセルごとに記録して距離画像っぽいの作成したことはある。
Halconにそんなのが紹介してあったので真似してみた。焦点距離計測とかなんとかいうやつ。
0969962
2012/01/31(火) 22:45:05.79レスありがとうございます。
cv::namedWindow でウィンドウを作ってみましたが、結果は同じでした…。
(テストしたコードは http://tinypaste.com/c9ec2e8b です)
0970デフォルトの名無しさん
2012/02/01(水) 02:25:03.97前ピンと後ピンでは厳密にはボケ方が違うから、それを認識できれば
単眼で距離を測ることは可能だと思うよ。
ただ、絞りの形が決まってないと難しいと思う。
0971デフォルトの名無しさん
2012/02/01(水) 09:02:00.90それが昔からあるコントラスト方式のAFそのものであることは分かる。
クモの研究者は、新しい距離計測技術につながると主張しているので、
なんらかの違いがあると思うのだが、それが分からん。
0972>>969
2012/02/01(水) 09:13:39.69IplImage *pImg = cvCreateImage(...)
使ってて
C++のインタフェースって使ったことないんだけど
画像のチャンネル数は指定しなくてもよいの?
(例えば CV_8U → CV_8UC1 としなきゃダメとか)
0973デフォルトの名無しさん
2012/02/09(木) 13:37:10.580974デフォルトの名無しさん
2012/02/09(木) 13:38:36.940975デフォルトの名無しさん
2012/02/09(木) 13:43:27.85つまり1.0と1.1preだと読み込みが変わるんですね
0976デフォルトの名無しさん
2012/02/09(木) 17:22:43.77struct CvPoint;
のように前方宣言(で言葉合ってるかな?)できるのですが
CvSizeだけ何故かtypes_c.h内で無名structのtypedefとして宣言されているために
struct CvSize;
のように前方宣言が書けません.
このような場合は あきらめてヘッダをincludeするしかないのでしょうか?
0977デフォルトの名無しさん
2012/02/09(木) 21:42:36.960978デフォルトの名無しさん
2012/02/09(木) 22:43:32.590979デフォルトの名無しさん
2012/02/09(木) 23:30:18.420980デフォルトの名無しさん
2012/02/10(金) 05:13:58.740981デフォルトの名無しさん
2012/02/10(金) 13:34:02.69と、2.1を使い続けてる俺が言ってみる
0982デフォルトの名無しさん
2012/02/10(金) 23:19:03.53ただのものぐさ?
レス数が950を超えています。1000を超えると書き込みができなくなります。