X



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

■ このスレッドは過去ログ倉庫に格納されています
0513デフォルトの名無しさん
垢版 |
2016/05/10(火) 17:07:30.48ID:CV1uo/Oi
Qtを組み込んだ時にnamedWindowするとデフォルトで出るコントロールパネルだけど、最前面に持ってくる方法はないのですか?
気を抜くとすぐ背面に隠れて、ウインドウ扱いされてないからタスクバーから復活できないし困ってます
0514デフォルトの名無しさん
垢版 |
2016/05/24(火) 11:39:22.00ID:oX5dcQm/
OpenCVとはちょっと違うというかOpenCVのテンプレートマッチングの原理の質問になってしまうのですが、
たとえば、DFTの変換結果をそのまま逆変換してもそのままでは元の画像にならず、
各ドットの値を面積で割らないと元の値にはなりません。
では、検索対象画像Sとテンプレート画像TのDFTの変換結果から、
R[y][x].実数 = S[y][x].実数 * T[y][x].実数 + S[y][x].虚数 * T[y][x].虚数
R[y][x].虚数 = -S[y][x]実数 * T[y][x].虚数 + S[y][x].虚数 * T[y][x].実数
の様な計算でRに畳み込み、Rを逆変換して出てきた値を
1.0(完全一致)〜0.0(完全不一致)や-1.0(完全逆位相)の値に正確に合わせるには
どの様な計算を行えば良いのでしょうか?

ttp://iphone.moo.jp/app/?p=630
(OpenCV3.1ではtemplatematch.cppの635行目、crossCorr関数となってもっと大きくなっていますが)
を言葉通りに受け取って相関係数を求めてみても1.0〜0.0の様な値にならず、
OpenCVのソースの理解を試みたものの、規模が大き過ぎて断念しました。

スーパーハカーな皆様、出てきた値の扱い方のご教授をお願いします。
0515デフォルトの名無しさん
垢版 |
2016/05/27(金) 01:40:43.75ID:G9GLGEnA
突然ですが
画像処理の雑音の例でよく、インパルス雑音が挙げられていますが、現在で実際にインパルス雑音の除去が必要な場面はどういう画像でしょうか?
特に高発生確率のインパルス雑音がのる場合はどんなときでしょうか?
0517デフォルトの名無しさん
垢版 |
2016/05/28(土) 07:57:15.22ID:gAXtc21H
OpenCVとGPUImageって、どっちを使うか何を基準に決めたらいいんでしょうか?
iOS/Android環境で動作するアプリです。
0519514
垢版 |
2016/05/28(土) 17:24:12.93ID:28o3XPep
自己解決しました
積和の場合、周波数空間で検索対象とテンプレートの位相と振幅を乗算して
元の空間でのドット毎の数値を極端に大きくする事によって、
明度に関係なく類似の度合いを検出しやすくしていると理解しました

しかし、書き込みには無かった本来の目的とは違っていたので、再度質問させて頂きます
ttp://opencv.jp/opencv-2svn/cpp/object_detection.html
CV_TM_SQDIFFの場合、検索対象画像Sとテンプレート画像TをそれぞれDFTで変換した後、
その変換結果である周波数空間にてどの様な演算を行っているのでしょうか?

>>514のCV_TM_CCORR又はCV_TM_CCOEFFの場合、
ttps://ja.wikipedia.org/wiki/%E9%9B%A2%E6%95%A3%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B
の離散フーリエ変換表の「時間軸畳み込み、周波数軸積」を複素共役によって反転した式だった為、
簡単に理解できたのですが、元の空間での”検索対象とテンプレートの位相と振幅の差の2乗”の総和を
周波数空間(フーリエ変換後の2次元配列)にて求める場合、どの様な式になるかまでは理解できていません
プログラムのコードの提示、数学での式、どちらでも構いません、よろしくお願いします
0520デフォルトの名無しさん
垢版 |
2016/05/31(火) 18:18:23.45ID:oGkAGoLg
opencv3.1でcvCreateKDTreeをつかうにはどうすればよいのでしょうか。また、代替品などは存在しますか?
0521デフォルトの名無しさん
垢版 |
2016/06/19(日) 13:57:35.93ID:I+lgUoFF
質問させてください。

OpenCVSharpで画像表示させるとき
Cv.NamedWindow("window");
をいれても入れなくても
Cv.ShowImage("window",img);
で画像が表示できますが、あったほうがいいのでしょうか。

調べてみてもnamedwindowの必要性がわかりません。
0522デフォルトの名無しさん
垢版 |
2016/06/23(木) 10:09:32.60ID:tc69iVNd
>>521
namedwindow してなければ処理に応じて画像を書き換えるとかできないよね。
OpenCVでインタラクティブなプログラムを書くときには namedwindow しておいたほうが吉
0524デフォルトの名無しさん
垢版 |
2016/07/07(木) 16:27:38.11ID:kHm9gYtQ
Chain of Vitalik
0525デフォルトの名無しさん
垢版 |
2016/07/27(水) 20:30:41.40ID:N+3siVEw
VS2010で2.4を使ってたのをVS2015と3.1に上げてみたが
未だにc4819の警告はでるんだな
0526デフォルトの名無しさん
垢版 |
2016/08/15(月) 18:27:27.06ID:vd5wuXvi
カメラで撮影した顔写真と予め撮っておいた顔写真を照合して
個人認証をするプログラムをつくっているのですが行き詰ってます

顔の特徴量を抽出する方法で作っていたのですが精度が悪い状態です
何か他によい方法はないでしょうか

撮影は常に顔の正面から行うつもりです
0530デフォルトの名無しさん
垢版 |
2016/11/16(水) 16:17:58.62ID:CyMhNzzi
opencvで顔認証したいのですがopencv3.1では口や鼻のxmlファイルがありません
素人なのですがどうすれば良いのでしょうか?
0531デフォルトの名無しさん
垢版 |
2016/11/24(木) 03:35:34.42ID:u2lnGSkh
自前で画像処理を行う関数を作った場合、
元の画像を受け取る引数はconst参照にするのと浅いコピーで受け取るのどちらが良いんだろうか?
最適化されるだろうからどちらも同じ?
0532デフォルトの名無しさん
垢版 |
2016/11/24(木) 06:04:11.15ID:dIXu87Uw
CVに関係あるインスタンスなのか、全く関係のないビットマップハンドルやラスタイメージなのかで
浅いコピーの量の事情は大分変わってくる
0533デフォルトの名無しさん
垢版 |
2016/11/24(木) 06:30:26.01ID:u2lnGSkh
肝心のこと書くの忘れてたcv::Matの話です。8UC3か8UC1で。
基本はopencvで処理するけどopencvにない処理なんかを実装した場合にconst参照にするかどうかで悩んでる。
0534デフォルトの名無しさん
垢版 |
2016/11/24(木) 06:48:47.51ID:dIXu87Uw
リファレンスのカウントとかしてっからその関数だけで全ての処理が完結するならconst参照でもええんでないかい?
不特定多数からアクセスされるリファレンスカウンタとか関わってるから最適化掛からないとおも
速度、大きさ、合理性だけで言えばconst参照が速くて小さくなって合理的

微々たるものだろうから呼び出し回数が大した事なくて、将来の仕様変更の対策とかIF揃えたいとかに拘るなら
まんまMat受け取って当面は暗黙のシャローコピーでも何でもお好きな感じでとしか
0535デフォルトの名無しさん
垢版 |
2016/11/27(日) 10:30:50.69ID:eANnkNNi
>>531
引数画像を変更するつもりがないなら const 参照でいいはず。
画像の shallow copy は、仕様通りならば実質的に const 参照と
同じことになるはずだが、WGの実装力を信頼してはいけない。
0536デフォルトの名無しさん
垢版 |
2016/11/29(火) 16:20:17.08ID:90pr09cr
opencv3.10では2.4シリーズのhaarcascade_mcs_mouth.xmlを使って口を検知することが出来ません
どのようにすれば良いのですか?
0537デフォルトの名無しさん
垢版 |
2016/11/29(火) 21:24:38.31ID:RwYrSiHB
OpenCVSharpで、getRotationMatrix2Dで取得したMat型の行列にアクセス(書き換え)をしたいのですが、
やり方が全くわかりません。
ある場所(例えば[1,2]の場所の値を書き換えたいときはどのように書けばよいのでしょうか。
0539デフォルトの名無しさん
垢版 |
2016/11/30(水) 09:07:49.74ID:n88rQVx5
>>538
ありがとうございます。助かりました。
mat.At<double>で変数に値を取得して、
それを書き換えた上でmat.Set<double>でセットするのですね。
0541デフォルトの名無しさん
垢版 |
2016/12/24(土) 01:04:41.92ID:MxNHTNh0
javaでHoughLinesPで直線検出しようとしていますが、
候補が複数あるはずなのですが、一本しか検出できません。
何か心当たりがあればご教授ください。
↓こんな感じで引数を渡しています。
Imgproc.HoughLinesP(CannyImage, Lines, 1, Math.PI/180, 50, 100, 50);
0542デフォルトの名無しさん
垢版 |
2016/12/24(土) 05:50:07.86ID:lImTu5dP
画像も貼らずに検出できませんとか言われてもな
thresholdかminLineLengthでも下げてみれば
0544デフォルトの名無しさん
垢版 |
2016/12/24(土) 10:36:10.51ID:MxNHTNh0
>>542
http://imgur.com/gD7exqZ.png
↑がcanny画像で、これにhoughかけても一本しか検出されなくて困っています。ご指摘いただいたパラメータも変更してもだめでした。

ちなみに一本というのはLines.cols.()が1を返してます。
0545デフォルトの名無しさん
垢版 |
2017/01/29(日) 16:06:48.53ID:NA8VBQUD
OpenCVSharp使っているんですが
ゆらゆら揺れる水面で、突然激しく揺れる部分が時々現れるという動画があるんですが。
その激しいタイミングと位置を探したいんですが、まったく画像処理の知識がなくて
できません。
どなたかわかる方いませんか?
0546デフォルトの名無しさん
垢版 |
2017/01/29(日) 17:02:11.63ID:Qwtgij15
RGBやHSB色で移動量見るとか、特徴点出して見るとか、ヒストグラムで調べるとか、
やり方は写ってるのに合わせて色々あるだろうけど、質問の仕方から察して作るの無理だと思うよ
0547デフォルトの名無しさん
垢版 |
2017/01/29(日) 17:32:41.22ID:NA8VBQUD
>>546
日本語むちゃくちゃですね
すみません

今のところグレースケール→2値化して
白いピクセル数の変化を見たりしてます。
本とかサイトでもなんでも教えていただけないでしょうか
0549デフォルトの名無しさん
垢版 |
2017/01/30(月) 16:14:04.10ID:sqLElGA6
ピクセルごとに時間軸方向に FFT かけたら。
0551デフォルトの名無しさん
垢版 |
2017/01/31(火) 04:34:23.36ID:QThkY3bX
最近のビデオカードはハードウェアで超解像できるそうだけど自分のmpegファイルをアップコンバートすることは出来ないのでしょうか
0553デフォルトの名無しさん
垢版 |
2017/02/02(木) 14:04:14.44ID:AOlHkhON
deblurringしたいんだけどうまくいかない
IBPとウィーナーフィルターでやってるんだけど
0555デフォルトの名無しさん
垢版 |
2017/02/12(日) 08:18:37.87ID:fljd0HzI
Halideが画像処理だけじゃなくて線形代数計算全体も高速化してくれないものか
0556デフォルトの名無しさん
垢版 |
2017/02/20(月) 19:41:53.39ID:hhNdaF/Q
オプティカルフローで画像をつくると1分以上かかるのですが、高速化できますでしょうか。
1280x960の画像2枚を、sperres::createOptFlow_DualTV1()で、calcしています。
0558デフォルトの名無しさん
垢版 |
2017/02/23(木) 08:55:26.98ID:6GnqaZlC
昨日ググったら、自分でコンパイルするみたいです。
コンパイルしようとしたら、ターゲットの装置にGPUが無かた。。。

後、オプティカルフローに速いもの遅いものがあるみたいで、
奇麗なのは遅いもの。。。
0559デフォルトの名無しさん
垢版 |
2017/02/25(土) 18:45:23.48ID:gXLTmYDH
ソース画像の中から特定の画像を検出する方法としてMatchTemplate(テンプレートマッチング)と言う物がありますが、他に高速な方法はないでしょうか?
ゲームの自動操作が目的のため、検出したい画像は固定(サイズ傾き明るさは変わらない)と言う条件です。
0561559
垢版 |
2017/02/25(土) 23:56:17.89ID:gXLTmYDH
テンプレートマッチング以外の画像検出にはどの関数を使用すればいいのでしょうか?
0564デフォルトの名無しさん
垢版 |
2017/03/05(日) 02:28:44.21ID:Coy+w1qj
USBカメラのfpsが安定しません
30fpsの物を使っていて、9割は33msで処理をしてくれますが残りは100msを超えたりします
安定させる方法を探しています
0565デフォルトの名無しさん
垢版 |
2017/03/05(日) 06:32:02.39ID:wDws2FJs
カメラの機種もどういう処理してんのかも分かんないからエスパーしかできんが
暗いときとかにカメラがフレームレートを変えて露光時間を調整してるってことがよくあるかなあ
この場合カメラの設定で露出とかホワイトバランスのオート設定をオフにすると解消される
0569デフォルトの名無しさん
垢版 |
2017/03/15(水) 18:24:28.23ID:O7NQyo3u
waitkeyってどんな役割ですか?
フレームレート30なら33msにしろって書いてあったんだけど、例えば画像処理するとして、1ループ全体で33msなのか、1ループを処理時間+wait33msなのかどっちなんだ、もっと違う考え方?
0571デフォルトの名無しさん
垢版 |
2017/03/15(水) 21:56:03.22ID:O7NQyo3u
>>570
2010の参考書に書いてあった
とりあえず33msでいいでしょうみたいな
普通ならそれでいいんだろうけど、都合上ループの処理速度だけはシビアにしたい
0572デフォルトの名無しさん
垢版 |
2017/03/15(水) 22:20:14.38ID:PWzId4/U
webカメラの話で良いのかな?
FPSの設定は VideoCapture::setかなんかでやるはずなのでwaitkey関係ない
waitkeyはキー入力の為の待機なのでキー入力しないならそもそも不要
そこで33msも待機させたら同じループ内の他の処理で1msとか時間かかった時フレームレート落ちる予感
0573デフォルトの名無しさん
垢版 |
2017/03/15(水) 23:28:43.20ID:eMQeLKBC
それFPSの設定知らずに最速再生の状態で各フレームのウェイトを33.333...msにして
30FPSの速度にしてる、とかじゃね?(1000ms/30FPS)
0575デフォルトの名無しさん
垢版 |
2017/03/15(水) 23:50:57.05ID:hRu8oYsz
>>572
やっぱりset使うんだよね
自分も落ちそうだと思ってる
使ってた本にはwaitkeyないと動きませんって書いてあって、なくしたら動かなかった気もする
>>573
たぶん本はそんな感覚だと思う
自分はいらないと思ったからWait1msでやってたんだけど、フレームレート変えれるwebカメラ買ってもらって、いろいろ考えてたらwaitkeyってなんだ?ってなった
0576デフォルトの名無しさん
垢版 |
2017/03/16(木) 00:08:08.87ID:Xj2KwEen
確かにhighguiを使ってる場合waitkeyがないと表示されないとかあったかも。うろ覚えなので仕様見てくれ。
あと>>とかで新フレーム取得まで待機してる間はキー入力を受け付けないだろうから
キー入力が必要な場合そこで待機させるよりwaitkeyを多めに設定する方が良いかな
まあ本気で何か作るならこの辺の機能は使わないだろうけど
0577デフォルトの名無しさん
垢版 |
2017/03/16(木) 00:20:39.72ID:bGXqVYnt
>>576
確かにhighgui使ってます
使わないで出来るのね…
使ってないサンプルプログラム探してみる
ある程度計測したら終了させる予定だから入らないかなぁ
waitkey不確定要素が多い気がしてならない
0578デフォルトの名無しさん
垢版 |
2017/03/16(木) 00:26:17.16ID:Xj2KwEen
>>577
言葉が足りなかったわopencv単独で表示するには他に方法はないと思う
opencvはあくまで画像処理とかのライブラリでGUIはちょっとした確認や処理のためのおまけみたいなもん
本気で動画やカメラを使うアプリケーションを作るならGUIは別のフレームワーク使うだろうということ
0579デフォルトの名無しさん
垢版 |
2017/03/16(木) 00:38:06.22ID:bGXqVYnt
>>578
つまりopencvはwebカメラの画像取得および出力に関してはあんまり機能がなくて、取得された画像を処理することに長けていると言うこと?
初心者過ぎてすまん
画像処理としては二値化で物体検出、重心を求めるぐらいしかさせてない…
0580デフォルトの名無しさん
垢版 |
2017/03/16(木) 10:51:13.27ID:q9y/P6va
そもそもOpenCVに直接カメラのハードウェア設定をいじらせようってのが無理な話なのでは?
あくまで画像処理ライブラリだし。
FPSを変更出来るカメラなら、仕様書なり取説なりあるかと。
シビアに計算したいのならFPSだけじゃなく、露光時間や転送時間も計算しないとダメだし。
いくら30fpsに設定しても、他の時間で100msかかってたら無意味。
0581デフォルトの名無しさん
垢版 |
2017/03/16(木) 12:25:54.90ID:Xj2KwEen
>>579
そういうこと
色々言ったけど勉強したりちょっとしたことやるには十分だしwaitkey(1)で良いと思う
0582デフォルトの名無しさん
垢版 |
2017/03/17(金) 03:02:10.63ID:Ne1jreLa
set用いてfps60に設定したのに全く変化なし…
じゃあ解像度変えてfpsあげようと思ったけど変える方法がなさそう
使ってるカメラの仕様には解像度1080pで30,720pで60と書いてあるのに…
0583デフォルトの名無しさん
垢版 |
2017/03/17(金) 03:24:23.39ID:1Ef8W1sh
ロジクールのやつで試した時は解像度640x480で60fpsいけたな
ドライバ側の設定でオート機能オフにして露出下げたらあるいは
0585デフォルトの名無しさん
垢版 |
2017/03/17(金) 08:49:45.72ID:SdZqx0Vp
setは動画ファイル読み込み限定でカメラ設定はいじれないっていう情報が調べたら出てきた
どこまで信憑性あるかわからんけど
とりあえず解像度いじったけど逆に重くなった…
0586デフォルトの名無しさん
垢版 |
2017/03/17(金) 08:53:58.79ID:SdZqx0Vp
>>585
とりあえず640試してみます
0587デフォルトの名無しさん
垢版 |
2017/03/17(金) 09:14:45.13ID:8bvhsZ+L
opencvの取り込み処理とかウインドウ表示とかはちょこっとopencv使いたいとき向けのでしょ
きちんと使いたいときは取り込み処理を別に用意したほうが・・・
0588デフォルトの名無しさん
垢版 |
2017/03/17(金) 09:48:03.86ID:SdZqx0Vp
>>587
そっちの方面も視野にいれてます
初心者過ぎるので、簡単なやつ希望です…
0589デフォルトの名無しさん
垢版 |
2017/03/17(金) 11:09:35.47ID:SUVPLko4
だーかーらー、カメラ標準ソフトを使うとか、
せめて取説や仕様書を読めと
作る側は「簡単な物」ほど作るのは難しいってことを理解しとけ
0590デフォルトの名無しさん
垢版 |
2017/03/17(金) 11:11:46.60ID:SUVPLko4
あと、ハードウェアに出来ないことはソフトウェアには出来んからな
解像度やFPSの仕様以上のことをやらせようとしたら、
超解像とかハードルが一気に高くなる上に、あくまで「作られた画像で補完」になる
0591デフォルトの名無しさん
垢版 |
2017/03/17(金) 12:11:55.75ID:ol/nseXL
>ハードウェアに出来ないことはソフトウェアには出来ん

日本語の使い方が正しくない
0592デフォルトの名無しさん
垢版 |
2017/03/17(金) 12:22:39.49ID:SdZqx0Vp
>>589
カメラ標準ソフトか…
ロジクール製品なんだけど、取説とか仕様書はないに等しかった
>>590
スペック通りに動かしたいだけなんだ
とくに解像度はどうでもいい
0593デフォルトの名無しさん
垢版 |
2017/03/17(金) 12:56:05.45ID:mRKEvJ0A
>>591
理解が正しくないよ
>>590が言ってるのは30fpsまでしか対応してないカメラで100fpsの映像を造りだすみたいな話

>>592
webカメラの製品独自の仕様はそれであるけど、探すだけ無駄。ほとんど非公開だろ
汎用的にwebカメラを制御する仕様はほぼ統一されてるしぐぐりゃ星の数ほど出るからそれ見ろ。それすら探せないってなら諦めろ
0594デフォルトの名無しさん
垢版 |
2017/03/17(金) 13:09:25.79ID:ol/nseXL
>理解が正しくないよ
> >>590が言ってるのは30fpsまでしか対応してないカメラで100fpsの映像を造りだすみたいな話

この意味なら漏れの理解したまんまだな
0595デフォルトの名無しさん
垢版 |
2017/03/17(金) 14:55:16.33ID:1Ef8W1sh
今してるのはハードウェアでもOpenCVでもできることの話だろ
なぜまずOpenCVのマニュアルを確認しないのかは知らないが
0596デフォルトの名無しさん
垢版 |
2017/03/18(土) 00:30:42.66ID:+usu446B
オートフォーカスとか露光の自動調整は本格的な画像処理するときにまずつまずく部分
0597デフォルトの名無しさん
垢版 |
2017/03/21(火) 14:26:08.25ID:jINUaUr9
<オートフォーカスや露光調整くらいは画像処理でやって
<リアルタイム60fpsで、画面解像度はFUHDで、分解能も8bitじゃなく16bitでやってね
<民生品でやってるから、そのくらい簡単に出来るでしょ?
0599デフォルトの名無しさん
垢版 |
2017/03/22(水) 17:33:09.53ID:/LjNvXVg
Qtバックエンドのウィンドウでマウスコールバック取るにはどうすればいいんだ?
0601デフォルトの名無しさん
垢版 |
2017/03/22(水) 17:59:44.99ID:/LjNvXVg
Qt組み込んだだけで本体はhighguiのウィンドウじゃないの??よく分からないけど
0603デフォルトの名無しさん
垢版 |
2017/03/22(水) 21:29:57.62ID:5RpsXBhr
よく分からないのでそこをなんとかお願いします。
マウス座標が取得できなくて大変困っております。
0604デフォルトの名無しさん
垢版 |
2017/03/22(水) 21:52:58.22ID:dZZlEx+4
何故最初は小さいプログラムから作らないのか
qtとOpenCVでマウス座標取ってこい
0606デフォルトの名無しさん
垢版 |
2017/05/09(火) 12:58:13.16ID:l4i4sD4Y
opencv3.1で
connectedComponentsWithStats使ってラベリングしたんだが
指定した面積以下はラベリング除外ってできる?
0609デフォルトの名無しさん
垢版 |
2017/05/13(土) 22:46:00.69ID:uY4Y4Qvj
>>606
そのまんま、ラベリング結果を操作するだけでいいと思うけど。どんな動作を想定しているの?
0610デフォルトの名無しさん
垢版 |
2017/05/14(日) 12:58:05.16ID:RW4x4SJY
>>609
指定面積以下にはラベル付けをしない

今は無理やりラベリングした結果の面積をif文で無理やり指定面積以下のラベルを表示しないようにしてる

だからラベル番号表示すると飛び飛びなんだよね

最終的にはラベル番号がちゃんと連番かつ面積以下を除去できるようにしたいわ
0611デフォルトの名無しさん
垢版 |
2017/05/14(日) 13:04:18.40ID:RW4x4SJY
あとラベリングした輪郭が途切れたりしてるからラベリング統合みたいなのできたらいいなって今考えてる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況