1read 100read
2013年05月プログラム40: 【Intel】OpenCV総合スレ 4画素目【画像処理】 (847) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Java系スクリプト言語Groovy (857)
【質問】C++でソフト開発したい!【初心者】 (209)
C++11/C++1y 18 (338)
【質問】C++でソフト開発したい!【初心者】 (209)
新言語を開発したい (418)
推薦図書/必読書のためのスレッド 69 (898)

【Intel】OpenCV総合スレ 4画素目【画像処理】


1 :2012/02/12 〜 最終レス :2013/05/11
OpenCVはインテルが公開したオープンソースのコンピュータービジョンライブラリ。
現在はWillowGateが開発している。
本家
http://opencv.willowgarage.com/wiki/
日本語資料など
http://opencv.jp/

2 :
2ならOpenCVは俺の嫁

3 :
>>2の面倒はしっかりと我々WidowGateが見させて頂きます。

4 :
これは>>1を応援する

5 :
Haar-LikeじゃなくてLBPで顔検出したいんですがどこかにコピペしてパス通すだけのサンプルコードないですかね?
cv::MatじゃなくてIplImage使ってるやつでお願いします

6 :
コーナー検出の処理時間をCore2 E8500、VGAサイズで計測してみたんだが、
FAST 1〜2msec
Harris 105msec
GoodFeatureTotrack(固有値) 105msec
ってハリスとGF2Tの実装遅すぎじゃね?

7 :
>>5
cv::Matだけど
opencv/samples/c/facedetect.cpp
でええやろ

8 :
>>7
レスありがとうございます
それ訳が分からなかったんで、cook-bookのコード使ったらとりあえず動いたけど
C++はよく分からないから出来ればCでのサンプルでお願いします

9 :
>>8
まずお前が10年間C++を勉強すれば済む話だろ

10 :
それ言われたらそれまでなんだけどね
C++でしかサポートしない関数とかもあるらしいし覚えるしかないんかな
これリファレンスとか微妙に見づらいし
マイクロソフトかGoogleあたりが最強の画像処理ライブラリ作ってくれんかな

11 :
>>10
勉強する気がないやつは何使っても一緒だろ

12 :
>>10
お前が見やすいリファレンスを書き上げればいいんじゃね?
ほかの言語用にラッパーライブラリを作り上げればいいんじゃね?

13 :
>>10
金出せば色々あるけど、とりあえず安い部類の画像処理ライブラリ。
TEO
http://teo.sourceforge.jp/
IPP
\26,250 http://www.xlsoft.com/jp/products/intel/perflib/ipp/index.html
$199 http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-purchase/

14 :
すみません質問です
OpenCV2.2のサンプルプログラムであるgrabcut.cppを見ているのですが
最初に与えた前景・背景情報を別の画像に用いる場合にはどの辺りを書き得ればいいのでしょうか
やりたいことの例としては
固定カメラの画像列を入力として,最初の画像で人を前景として指定
その後の画像では自動で人っぽいところを切り抜いていくといった感じにしたいと思っています
人は画面外に出ず左右に揺れる程度です

15 :
そいつはコマンドラインで動くプログラムだから、
string filename = argv[1];

string filename = "ファイル名.jpg";
みたいにすればいいんじゃないか?

16 :
>>15
とりあえずコードいじろうとしてたんですが今現在
imreadが変?っぽくて困ってます
string filename = "baboon.jpg";
Mat image = imread(filename,1);
で上手く読み込んでくれてないみたいで
IplImage *img = cvLoadImage("baboon.jpg");
は普通に動くのでパスは通ってそうなんですが
OpenCV入れなおしてみるのが早いでしょうか?

17 :
>>13
TEOなんてスゲー久しぶりに見たな
まだ使ってる人なんて誰もいないだろ

18 :
>>16
Visual Studio on Windows 環境の話しなら,
・使ってるライブラリのバージョンが正しいか
(2008用のライブラリを2010で使ったりしてないか,等)
・Debug / Release の指定とリンクしてるライブラリは正しいか
の2点をまず確認.

19 :
>>17
使っているのは学生の実験や研究くらいだろ、昔も今も
TEOのEってどこだっけ?Tsukuba, Okayamaは分かるんだが

20 :
EDOだったはず

21 :
ついカッとなって変なこと書きこんでごめんね
いろいろ調べたけど今現在実在する環境ではOpenCVが最善ぽい

22 :
今更C++みたいなクソ言語使わせるのは止めろよ
JavaかPerlかRuby当たりにしてくれ

23 :
負けず劣らずの糞言語あげんなよw

24 :
>>13
IPPはOpenCVと一緒に使うものだろう

25 :
魚眼レンズで取った写真の復元って出来たっけか

26 :
>>25
カメラキャリブレーションと3次元再構成 opencv v2.1 documentation
http://opencv.jp/opencv-2.1/cpp/camera_calibration_and_3d_reconstruction.html
できるとしたらこのへんかなぁ。3次元再構成じゃなくてカメラキャリブレーションのほうね。
魚眼レンズを通したチェスボード格子点の認識がうまくいくかどうかは知らないけど。

27 :
2.2以降は歪みモデルが拡張されて、魚眼のような広角レンズでもキャリブの精度は上がってるはずだよ。
使う関数は一緒だけど。
http://pr.willowgarage.com/wiki/OpenCVMeetingNotes/Minutes%202010-09-07

28 :
魚眼レンズの画像補正の実験中に自分の頭頂部が薄くなっていることに気付いて驚いた。

29 :
リアルタイムで髪をふさふさに補正するビデオチャット機能の実装が急務

30 :
ヅラ被ればええやろ

31 :
ロマンが無いだろ

32 :
ヅラ職人のロマンを馬鹿にしてんのか

33 :
>>32
夢とロマンを混同するな。ズラは夢だ。

34 :
ヅラの話題になった途端に、近年稀に見る盛り上がりようだな。
おまえら…

35 :
リアルタイムで毛で顔全体を隠すのなら作ってもいいぞw
チャット目的ならdirectshowフィルタで実装し、メリット値(フィルタ選択優先度)最大で使ってもらうのがいいかな。
汚物が隠れて相手も喜ぶな。
ハゲ頭は特徴検出難しいからおとなしくズラにしてください。

36 :
haarcascade でトレーニングに再配布不可の画像を使った場合、
xml に画像の情報が少し含まれると思いますが
その場合はプログラムも再配布不可になりますか?

37 :
>>36
復元できないし再配布には当たらないと思うけど
利用規約があるのなら反するかもな

38 :
xmlのデータを見て、あの画像使ったな、って分かっちゃうことあるのかな?

39 :
無理でしょう
相当情報を削減してるし、不可逆だろう

40 :
haartrainingを実行しているのですが、
+----+----+-+---------+---------+---------+---------+
| N |%SMP|F| ST.THR | HR | FA | EXP. ERR|
+----+----+-+---------+---------+---------+---------+
ここまで表示され1時間ほど経過しても進む様子がありません
CPUの使用率は高いので何か作業をしているようにも見えますが、
このまま放置しておけば学習は進むのでしょうか?


41 :
画像の枚数によっては数日以上かかる

42 :
動画ファイルの指定フレームに画像を挿入する関数ってあります?
cvCreateVideoWriterで新たに動画ファイル作って元動画から1フレームずつコピって、
挿入するフレームが来たら画像入れて、また元動画から次のフレームを貼りつけてくしか無いのでしょうか?

43 :
そうするしかないだろうな 挿入なんて関数はない

44 :
やっぱり無いですよね。
ありがとうございました。

45 :
赤や青やオレンジなど様々な色のピンポン玉が複数バラバラにあります。画像上の形・大きさはほぼ同じです。
赤っぽいピンポン玉がどこにいくつあるか、
オレンジっぽいピンポン玉がどこにいくつあるか、
など取得するにはどのように処理するのが最適でしょうか?
素直にテンプレートマッチングすると、輝度で判断するのでオレンジと黄色の区別があまりつきませんでした。

46 :
色が違うピンポン玉なのに色を見ない理由が知りたい。
円検出、円内の色判定が素直なやり方じゃないかな?

47 :
>>45
とりあえずボールっぽいのだけ全部列挙して
後で色の近さで赤や青やオレンジ(あらかじめ色のテーブルがある?)に量子化して
指定された色でフィルタすればいいのでは


48 :
>>45
「素直にテンプレートマッチング」というけど具体的にはどんな手法/類似度を使った?


49 :
まず、ピンポン玉に重なりがあるのかどうか

50 :
ピンポン玉の画像を用意して、テンプレートマッチして、
結果の画像の輝度を見ました。
ピンポン玉に重なりはあります。
なので、
左にオレンジの玉(A)、真ん中に黄色の玉(B)、(B)に半分重なった黄色の玉(C)
の画像に対して、用意していた黄色のピンポン玉の画像でテンプレートマッチすると
輝度がA=0.8、B=0.99、C=0.8
くらいになって、輝度で調べるとA,Cの区別がつきません。

51 :
>>50
素朴な疑問なんだけど、重なったピンポン玉の奥の方は見つける必要あるの?
テンプレートマッチングじゃ厳しいと思うんだけど。
で、肝心な内容に触れると、
グレースケールのテンプレートマッチングしかわからないなら、R,G,Bの3色でそれぞれグレースケール作れば?
3回マッチングさせて色判断すればいいと思うけど出来ない理由があるんかいな

52 :
色なのにメイドって

53 :
WindROOFで似たようなことやってるの見たような
重なった球体も予測してカウントするやつ

54 :
>>45
先にRGB若しくはHSVでフィルターをかけた画像を準備して
抽出すればOKじゃないですか?

55 :
>>51
いやカラー画像とグレースケール画像両方用意して
グレースケールで位置みつけた後にカラー側を参照して色を見ればいいだろ

56 :
おすすめのopencvの本を教えて下さい。

57 :
OpenCV 2 プログラミングブック

58 :
>>54
すいません、どういった手順かよくわかりません。
>>53
しらべてみます!ありがとうございます。
>>55
それはよさそうですね。
参照して色を見る時、1ピクセルだけだと荒い画像なら黒い点とかになっちゃうので
半径nピクセルくらいの色を平均する形だと思うのですが、
こういった曖昧?な比較は、ブラーフィルタでもかけて小さなゴミを消してから
その範囲の色の平均値(単純平均ではなく偏差かな)で比べるのがベターでしょうか?

59 :
>>58
そのへんは撮影環境と欲しい精度で相談して決めたほうがいいと思う。
単純にはぼかしていくつかサンプリングして平均を取って
あらかじめある?色リストとの距離を計算して一番近い色を選ぶ。
色空間も影響するのでRGBでうまくいかなければCIELABでやってみるとか。
ボールが重なっている場合は、クラスタリングしてから領域を選ぶとか。

60 :
とりあえず、ハフ変換まで勉強したぜ。
学会発表目指して研究やるぜ。
by大学4年

61 :
>>58
画像をR,G,Bに分解して
R,G,Bの閾値でルックアップテーブルを作ってフィルタリングします。
R,G,Bの画像をANDすれば2値化、若しくはグレー画像ができるので、
その画像からパターンマッチングすればよろし。

62 :
RGBの画像をandして、オレンジと黄色は別パターンになるのか?

63 :
何言ってるのか分からないし気にしないほうがいい

64 :
オレンジ R=252,G=136,B=50
イエロー R=252,G=252,B=50
一度、RGB(HSV)分解してからフィルターかけてからcvANDすれば
当然結果は変化します。
http://chihara.naist.jp/opencv/?%BF%A7%BE%F0%CA%F3%A4%CB%A4%E8%A4%EB%CE%CE%B0%E8%C3%EA%BD%D0
http://wiki.livedoor.jp/mikk_ni3_92/d/%A5%EB%A5%C3%A5%AF%A5%A2%A5%C3%A5%D7%A5%C6%A1%BC%A5%D6%A5%EB
でわかんなければ、諦めろ

65 :
>>63

66 :
ルックアップテーブル、フィルタリング辺りを翻訳最適化して書き直してやんよ。
>>64は何を書きたいかと言うと
RGBの255色×255色×255色のを1600万色を減色して255段階の色にしてグレースケール画像を作る
この画像と同じように減色された元画素をパターンマッチングかければオレンジと黄色わかる。
で、明るさ変化考慮不足なんで私も>>63と同じ意見

67 :
僕の解釈は、RGBそれぞれのチャンネルで2値化すると
各色の領域を抽出した画像ができるので
それに対してテンプレートマッチングを行う
同じ位置でRとGが1でBが0ならYellowだと分かる
というものだったけど
詳細を気にかけるほどよい方法とは思えなかった

68 :
>>67
最初はそうかなって思ったんだけど
>>61を読んだらand取ってからパターンマッチングと書いてあった。
だから66の解釈のが近い
詳細を気にかけて時間を無駄にしたようだ

69 :
>>66
>>67
cvSprit
してRGBかHSVに分解
256階調1chの画像が3つできる。
夫々にcvLut使って閾値で2値化orグレイスケール化する。
当然閾値以外は0に。
で、この3つの画像をAndしたらどうなる?
まぁ、マスクで隠したり色々手法はあるしこの方法は演算多い
からリアルタイム処理には向かんかもしれんが、フルカラーで
判別できるぞ?
これでも理解できない?

70 :
あと、先にtemplateかけて内部の色を判別する方法もあるけど、
templateで取りこぼしたり、対象が多くなりすぎたり、内包した
色の平均を取るとか面倒な処理が出るんから、色は先に消してし
まったほうが処理は早いな。
まぁ、なんにしたって先に画像をグレースケールに変換したほう
が処理が楽だ。

71 :
ボール検出をどうやるかって問題で
ボールの内側と外側で輝度だけ違う場合や色相だけ違う場合などもあるわけで
色を気にせず位置だけを先に見つけてそのあとに色を参照するほうが
ずっといいと思うけどな
分解とか減色とか言ってる時点でよく分からない前提を置いててまともじゃないだろ

72 :
大学で配布されたファイルをVS2008で動かしてもエラーが起こるなぜでしょう・・・
http://uproda.2ch-library.com/lib524530.cpp.shtml
カメラはelecom ucam-H1S30MSV
PCはwin7 pro 64bit
キーは基本で

73 :
どんなエラーなの?どこでいつエラーになるの。

74 :
>>73
実行まではできます。ウィンドウが作られて少し止まった後に
OpenCV GUI Error Handler
in function cvCvtColor, .\cvcolor.cpp(2255)
Press "Abort" to terminate application.
Press "Retry" to debug(if the app is running under debugger).
Press "ignore" to continue (this is not safe).
ってのがでます

75 :
>>74
たぶんframeImageのサイズが640,480じゃないんじゃね?

76 :
>>75
ありがとうございます。
できればサイズをどの値に設定すればいいか教えていただけるとうれしいです。

77 :
>>76
frameImageのwidthとheightを出力してみてやってもいいし、
cvGetCapturePropertyでcaptureのwidthとheight取ってもいいし


78 :
>>77
double width = cvGetCaptureProperty (capture, CV_CAP_PROP_FRAME_WIDTH);
double height = cvGetCaptureProperty (capture, CV_CAP_PROP_FRAME_HEIGHT);
//グレイスケール用の宣言
char windowName1[] = "処理後1";
IplImage *resultImage1=cvCreateImage(cvSize(width,height), IPL_DEPTH_8U,1);
という感じに設定してみましたがエラーがでました
openCVとC++については超初心者なもんでよくわからないです・・・

79 :
>>72のDLキーってなに?

80 :
>>79
kihonです。
IplImage *resultImage1=cvCreateImage(cvSize(640,480), IPL_DEPTH_8U,1);

IplImage *resultImage1=cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U,1);にして行を変えたらiplImageの宣言の位置を変えたら解決しました。
ありがとうございました!

81 :
日本語リファレンスはOpenCV2.2までしか無いんですか?

82 :
>>91
はい
最近勢いがあるから追いつてもすぐ次が出て無駄になるのだろう

83 :
OpenCV2.4とVC++2010を使っているのですがSURF関連のプログラムになると動かなくなります。
サンプルに入っているfind_obj.cppは大丈夫なのですがttp://fry.no.coocan.jp/lecture/CPP/findobj.cpp
を試してみたらコンパイルは通りますが実行すると
OpenCV Error : The function/feature is not implemented (OpenCV was built without SURF support) in unknown function, file C:\slave\WinInstallerMegaPack\src\opencv\modules\legacy\src\features2d.cpp, line77
というエラーが出ます…なぜでしょうか

84 :
これ以上ないくらい明確に書いてあるじゃん

85 :
いまopencv2.1をarmv7でコンパイルしているのですが、cxmat.hppのabs関数のreturnでエラーが発生して困っています。
「No viable conversion 〜」というエラーです。
対処法などお心当たりありましたらよろしくお願いします。

86 :
>>85
自己完結しました。
戻り値の型とreturnさせている変数の型が違っていたのが原因でエラーになっていたようです。
windowsでは同じソースでコンパイルできたので、根本的な解決にはならない気がしますが。。

87 :
>>84
features2d.cppの77行目で定義されているsurfという変数がemptyであるということは自力で分かったのですが
どうしたらこの表示が出ないように解決できるのか教えていただけないでしょうか
先週からOpenCVを使い始めたばかりでまったくわかりません

88 :
なお画像自体はちゃんと読み込まれているのは確認済みです。
後だしばかりですみません…

89 :
>>83
2.4まだ手を出してないけど、
The function/feature is not implemented (OpenCV was built without SURF support)
ってあるから「OpenCV 2.4 SURF」でググったらなんか2.4から変わったみたいよ

90 :
SURFとSIFTは特許の問題があるのでnonfreeに移動したって聞いたぞ
ビルド時にオプションで指定しないとビルドされてないのでは



91 :
>>89>>90
遅くなりましたがnonfree関係を調べなおしてmainの冒頭に
cv::initModule_nonfree();を追加したら動くようになりました!
そしたら次はExtractSURFするとカメラでキャプチャした画像だけに対してエラーが出るというバグが…
とにかくありがとうございます!

92 :
exactsurfのバグは昔からあった。解像度小さくないかい?

93 :
SURFのバグは2.2くらいで修正されたような

94 :
エラーメッセージをみたらincorrect size of input array () in unknown functionで
datastructs.cppの372行目に問題があるようなのですが、createseqもしてないし
storageも最後に解放していますし、子ストレージを作ってみたりもしましたが変わらずどうすればよいのかまったくお手上げです…
>>92
カメラデフォの640×480ですがまずいでしょうか?

95 :
>>94
場所までわかってるなら
エラー出ないと時と出るときで何が違うのか見たら

96 :
バージョン:OpenCV2.4
httpでgetしてメモリ上に展開されたjpgをcv::Mat形式で読み込みたいです。
jpgがそのまま展開されたchar*を与えるとポインタ引数、参照引数もしくは返り値としてcv::Matを返してくれる関数などありませんか?
ない場合はどのように実装すればいいですか?
よろしくお願いします。

97 :
>>96
一回ファイルに書きだしちゃえば楽かな

98 :
>>97
実行していませんが最終手段として考えています。
問題はいちいちHDDを動かす必要があるので繰り返し実行すると遅さが目立ちそうです。
秒間10回は走らせたいので。

99 :
>>98
そっか,じゃあメモリ上のストリームを流し込むかjpgデコードを直でやるかだね

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
datファイルを共有するP2Pソフト o2on 17dat (416)
懐かしのMS-DOSプログラミング (385)
TypeScript part1 (410)
OpenGLスレ Part19 (607)
くだすれDelphi(超初心者用)その55 (248)
【質問】C++でソフト開発したい!【初心者】 (209)
--log9.info------------------
みんなが忘れてしまっていることin競輪板 (857)
【最強】ヤマコー引退【支部長】 (323)
【過疎板に】カタルンジャー91話【生きる】 (206)
【餃子】宇都宮競輪場3【レモン牛R】 (975)
【当たれば】決目打ち投票専用スレ【大儲けや】 (795)
[サザンクロス]南修二[自在] (301)
【自在型】市田佳寿浩応援スレ3【東尋坊街道】 (954)
とりあえず今日特進決める上原龍(長野95期)について (906)
番手のテクNO1濱口に期待 (446)
【平井堅?】金子貴志だ!【カバちゃん?】 (433)
95期ってどんな感じ?2 (462)
矢口啓一郎・矢口真里 (787)
【ミカリン】伊東温泉競輪【33バンク】 (819)
【小心翼翼】 中川誠一郎◆11:3=B 【大外駆り】 (520)
競輪の売上向上を思案するスレ (420)
【競輪】FUスレッド Part2【A級】 (654)
--log55.com------------------
【NVMe】M.2/U.2/PCIeAICのSSD Part19
(・∀・)イイ!お勧めのPCケース 206台目
ハードオフにありがちなこと 三十七店舗目【ワ無】
SSDの価格変動に右往左往するスレ52台目
【AMD】Ryzen メモリースレ 8枚目【AM4】
貧乏でもたくましく自作してる人 【ワ無し】113
CPUクーラー総合 vol.327
■ Linux大勝利倶楽部 特価民のイライラが止まらないw