【Intel】OpenCV総合スレ 5画素目【画像処理】
レス数が900を超えています。1000を超えると表示できなくなるよ。
OpenCVはインテルが公開したオープンソースのコンピュータービジョンライブラリ。
現在はWillowGateが開発している。
本家
http://opencv.willowgarage.com/wiki/
日本語資料など
http://opencv.jp/
前
【Intel】OpenCV総合スレ 4画素目【画像処理】
http://toro.2ch.net/test/read.cgi/tech/1329040627/ ググりました。
2014年にPhotoshopに「焦点領域」という機能が追加されてるんですね。
なるほど、複数の画像に焦点領域で取得した画像を重ね合わせれば作れるという事だったんですね。納得です。 OpenCVでの解決法に繋がらなくて申し訳ないです。 >>849
そうやってもいいけど、画像の整列かなんかのメニュー一発でできる memo
https://dotapps.jp/articles/qkzakqweffl1k5qp
http://www.gazo.co.jp/shohin_gazoum_vlfc.htm
http://www.eyepp.com/download/pdf/EasyFocus2.pdf
https://www.mitutoyo.co.jp/products/gazoukogaku/menu/gazosokuteikiso.pdf
http://www.faicha.com/vision/05focus/
ピントの合い具合
同じ対象を撮影していて、ピントがあった画像と合っていない画像を比べれば、
1つ1つの輝度差(となりの画素との明るさの差)が短距離で変化するものが、よりピントがあっていると言えそうです。
1ドット右に進むごとに10づつ輝度が変わる4ドットのエリアより、
一発で40輝度変わる2ドットのエリアはクッキリしています。
これを指数化すればよいので、何も考えず、
focus = (画素輝度 - 隣画素輝度)2乗
を画面全体で計算し、これをfocusindexとしています。
この数値、映像対象が変われば当然変化しますので、混在できないとか、
あと動画に使用できないといった問題がありますが、
静止対象のピントを合わせる場合などには結構使えます。
ピント位置を追い込む
上記focusindexをZ軸を少しづつ変化させながら求めると、正規分布のようなベルカーブを描きます。
今、Z0からZnの間にピントがあう位置があると仮定し、この区間を10分割なら10分割して、
Z軸を移動させながら画像を撮影、そのfocusindexを求めます。
すると、どこかの地点で最高値が求まるので、この前後2区間(3点)の範囲にピントがあう位置があるものとします。
これをまた10分割なりして、区間を狭めていき、最終的に、Z軸の分解能で再現できなくなるまで行えば、
ピントのあう画像となります。
問題点としては、縞模様などの場合、ベルカーブにある種の振動波のようなものが観測でき、
正確に合わせられないことがあるということ。
また、ピントの追い込み方が原始的で時間がかかることなどがあげられます。 どの画像がいちばんフォーカスあってそうかってのはすぐ求まるけど
1枚の画像に合成するとこで俺がやったら汚いモザイク絵になっちまうだろうなw
(ひと昔前の使えないパノラマ合成をさらに酷くした状態) >>842
それやるなら超解像顕微鏡を使った方がいいと思う >>856
電子顕微鏡の方がいいだろ
どっちも用途違いすぎてお呼びじゃないがw >>857
電子顕微鏡は画像のフォーカスがあってる部分の合成をやってないけど超解像顕微鏡はやってる
何で電子顕微鏡が出てきたのか分からん 質問失礼します。
カラー画像同士の差分を取るには、3原色に分けてから差分を取ればいいのでしょうか? 何の差分を取るかわからんが、
とりあえずならそうなるな >>861
それぞれ白黒にしたうえで白黒同士で差分 カラーのRGBの各要素には色がない
したがって白黒にする必要ないやろう 1.
python 3.6.3 で複数(20体ほど)の生物(オタマジャクシみたいに特徴が少ないもの)の追跡を差分法でやろうとしてるのですが、前のフレームの ある一つの動体と今のフレームの ある一つの動体が同じであるか求める方法ってありますか?
もしくは、他にいい追跡方法はありますか?
2.
追跡対象が方向転換するとき等、速度が落ちるときに認識が外れてしまうのですが、解決方法はありますか?
プログラミングも動画処理も初めてで、動体の座標を求めてバウンディングボックスを描くところまで作りました
自分で調べてみても、近くに別の動体が来たら認識がおかしくなるような方法しかなくて…
ベクトルから推測するにも、やっぱり最初に判別出来ないと意味がないだろうし…
5日くらい悩んでも分からなかったので、お願いします >>867
抜けました
カメラの位置は固定します
経時変化による光の影響はほぼ無いです >>867
フレーム間隔は?
サンプルの画像数枚貼れる? 2回分の検出で物体が重なった面積が大きい方が同じものとしちゃう
動きが小さい&被写体が大きいなら簡単かつ効果的だよ 返答ありがとうございます
>>869
フレーム間隔について、すみません、よく分からないので、やってる方法を書きます
cap.read()で3フレーム読み込んでグレースケールにしたあち、1フレーム目と2フレーム目、2フレーム目と3フレーム目の差の絶対値を取って、bitwise_andで白いところを抜き出してます
すみません、公表していいのか分からない画像なので、使いたい画像は乗せられないです…
一応それっぽい画像を挙げます
大きさもこんな感じで、真っ黒なやつが動きます
これを全部追跡します
https://i.imgur.com/km9auMT.jpg
>>870
そうしようと思って一度考えたのですが、画像みたいに移動した時、別の動体と重なってしまうと、別の動体同士が認識しあってしまうんです…
https://i.imgur.com/yra8iZt.jpg |1フレーム目 - 2フレーム目| and |2フレーム目 - 3フレーム目|
ってことかな バイオ系でopencv使うならこのサイト見るのがオススメですよ
お金を払えばオーダーメイドでプログラム作成もしてくれるみたいです
http://www.cellstat.net 募集してないのにうちによく作ってくれって依頼くるけど
1万2万で請け負ってもらえると思ってる奴が多すぎるw おまえらもインテルにお金払えよな。
なんでもタダだと思ってんじゃねーよ。 なんのために、どういう送金手段で、いくら、インテルに払えばいいんだ? なんのためにってやっぱりタダが当たり前だと思ってんのか。readmeすら読んでないとかありえん。
https://opencv.org/
[Donate]をクリックして進め。おまえは馬鹿だからまず1万ドル払え。 >>874
この人現役大学生なのに凄いよね
仮想通貨を使ったビジネスも始めてるみたいだし カラー動画を0と255の2値動画に変換して出力たのですが、実際出力された動画の画素を分析すると2値になっておらず、中途半端な値がかなり混ざっています
これはどうしようもないことなのでしょうか jpgというより、動画で出力しているのでmp4です
形式がまずいとかそういう事なのでしょうか
処理は間違っていない気がするのですが…(画素値には0と255以外入れていないので…) mp4はjpegと同じで劣化するだろ。フレーム単位で2値化なんかしたら、HDDいくつあっても足りんわ。 Python3.6.3で
Pyinstaller を使い.exeにして、コンソールに直接 動画ファイル名を打ち込んで動画処理しようとしていたのですが、動画ファイルだけ読み込んでくれません
何故なんでしょう?
webカメラはキャプチャ&処理してくれるし、.pyの状態だと動画ファイルも読み込んで目的通りに動くので、アルゴリズム自体は大丈夫なんだと思います
import cv2
import os
x = os.path.dirname(sys.argv[0])
os.chdir(x)
Device = input('file:')
if Device == '0':
Device = int(Video)
cap = cv2.VideoCaputure(Device)
ret ,frame = cap.read()
if not ret :
print('cannot read video')
cap.release()
cv2.destroyAllwindows()
スクリプトがあるディレクトリを指定し、動画も同じディレクトリにいれて、コンソール画面でファイル名等を打ち込み、キャプチャしようとしてます
そうすると、.exeだと
cannnot read video
と出力されてしまって… パスが悪いんだろ。ファイル名入れるときは絶対パスでいれたら? >>895
そう思って、一度動画ファイルの絶対パスを入れてやってみたんですが、それでもダメでした…
.pyとの違いって何や…エラーも出てないですし… >>894
895が言ってる問題かどうか切り分けるために動画が置いてある場所に(動画じゃない)jpgとか
置いて開けるか試したら? >>897
.exeの方でやってみたら、cvrColorがエラーしてるって出ました。
.pyだと、cannnot read videoです。
cv2.videocaputureをcv2.imreadに変えたら.exeでも.pyでも表示されました
絶対パスじゃなくても、
ファイル名.jpg
だけでもどちらでも開けました
videocaputureに問題があるのかな… exeなんて使わんから知らんけど.pyで動いてるのに.exeにしたら動かないならそのpyinstallerとやらが悪さしてるんだろ 実行ファイルにするなら普通にc++で書けよ、わざわざpythonで書く意味なくね >>899-900
ですかね…他のexe化モジュールも何かエラー吐きすぎて無理そうだったし、時間ももったいないから諦めます
python 入れてもらおう…
元々自分用に作ってて使ってたら、横で見てたプログラミングの知識の無い人が、それ欲しいといったから、配布しようとしたんですよね
プログラミングを知らない人って、あの文字列を見ただけで怯むから、アプリにして、後は数値やら動画ファイルだけを突っ込むだけにしようかと思ってまして opencvの動画周りってffmpeg使ってたと思うけど、pyinstallerではそのあたりのdllも一緒にまとめてくれるのかな。 >>901
そういうの時間と労力のの無駄になるよ。
口に餌を運んであげたら、その猫の糞も始末する
責任が生じるんだ。 普通にクラ側にpython環境入れるかc++で書くかの2択だろ
pyinstallerの中身調べるとかナンセンスすぎる >>901って理由出してるのにその二択にするのはナンセンスよ Python を入れて貰うことにしました
結構使えるプログラムだと思うから、これで我慢してもらおう
>>902
>>905
調べたらこれっぽいです…w
解決策もあったけど、opencvが何かマルウェアみたいでちょっと怖いですね…諦めたほうがいいみたいです
>>903
一応お世話になってるし、色々権力があるから媚び売りたい って言うのは内緒です
>>906
ですね…
最初、使い方を調べたら一瞬でできるみたいだったからやってみたはいいけど、opencv を入れたスクリプトには向いてないみたいです
他の同じような方の参考にもなれば つか業務でソフト開発して詰まったら5chで質問とか終わってるエンジニアだな 質問しようとするだけで思考がまとまるし、じっとしてるだけより何でも行動すべきでしょ ネットで質問して回答通りにやってうまくいったからOK
みたいな開発者になると最悪だが、
得た回答を元に公式のドキュメント読み直すなり
再度情報を整理して、正しく理解できるならそれでいい 5chなんて無能とキチガイしかいないからな
煽ったり無知装ったりなにしても情報とれりゃそれでいいんだよ レスポンスが一番早いのは5chだしな
煽られてもその中に正解が入ってたりするし まあ社会人として業務知識みたいなのをSNSで聞くのどうなんですかって話じゃないかな 業務知識ってなんだよw
社外秘のデータや方法出してるわけでもあるまいしどうでもいいじゃん エスパーするとおれが答えられない質問はするな、ということですな。 opencv でPCの特定のウィンドウをビデオキャプチャすることはできますか?
普通にバンディカムの方がいいかな… python版opencv で
I1 I2 I3
の3つの画像(全て.png)を一つのマルチTIFFファイルにしたいんですが、cv2.imwrite だと複数指定できなくて困ってます
何か方法はありませんか? tiffとか使ったことないけど
普通に3枚pngを出力してからtiffにしたらええやろ >>924
すみません、出力して、どう1ファイルにまとめるのかが分からないのです 「マルチtiff 変換」
↑
これでぐぐればいいだろ。それも分からないのか・・・ >>927
調べて見つからなかったから質問してるんです
どれもこれも読み込みのことしかなくて、マルチTIFFファイルとしての出力がないんです >>928
「マルチtiff 変換」でぐぐって一つ目のリンククリックして、開いたとこの先頭に
> (BMP,JPEG,JPEG2000,GIF,TIFF,PCX,FPX,PNG)からのダイレクト変換可
> 1つのファイルに複数の画像を収めることができるマルチページTIFFの一括作成に特化された
ってあるが、これ使ってもできないのか? >>926
コマンドラインでtiff変換するやつとか適当に使えばいいだろ
保存した3つのpngのパスは分かってるんだから
その3つを入力して適当にtiffで出力して終わり
コマンドライン操作?何それ?ってレベルならお勉強して下さいとしか・・ すいませんお教え願えませんでしょうか?
ガタガタのドッド絵画像の線をある程度直線で近似してなめらかな線にして
頂点位置の取得をしたいのですが
途中でつまずいてしまいました
やってみたのは
openCVのチュートリアルサイトにあったのを
ttp://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html
for (i,cnt) in enumerate(contours):
epsilon = 0.01*cv2.arcLength(cnt,True)
approx = cv2.approxPolyDP(cnt,epsilon,True)
img=cv2.drawContours(img,[approx],0,(0,0,0),0,lineType=cv2.LINE_AA)
をやってみたのですがなめらかな線はcv2.LINE_AAで出るのですが
元のドット絵みたいな線がガタガタな所と
きれいな直線になっているところがばらばらでした
そこでcornerHarrisで角になっているところを表示してみました
でもcornerHarrisででた頂点をdrawContoursで繋ぐ方法が分かりませんでした
この方法でいいのかもちょっとわからず・・・すいません、どうしたら良いのでしょうか? ちょっと意味が理解できなかった
なめらかな直線に近似したら頂点の座標なんて分からないと思うが >>937
説明へたくそですいません
ttps://imgur.com/a/ImM2E
オーバーに描くとこんな感じです。
元画像の白と黒の境界のギザギザ部分は滑らかな線にして(cv2.LINE_AAでできた)
形自体は直線で近似するので頂点ができるので
その頂点の座標も知りたいという感じです。 >>925
ゴミだったよ
その次に出た応用編は良かった >>938
どこが最終目標か分からないけど
その説明だけだとfindcontourとか使う方がお手軽そう 教えていただいてありがとうございます
フーリエ見てみましたがまだちょっと理解が追い付かないです
>>941
最終的にはアウトラインの真ん中の線をつなげれる座標が欲しいです。
今のところこんな感じです
https://imgur.com/a/D1ZdN
findcontourについて・・・これもアウトラインで境界がとれているので
難しいです。
モナーの絵でいえばギザギザしたのをスムーズな線にしたら
センターラインもとれやすくなるのでは(なんの確信もないですが)
と思っています。
もうほんと説明がへたくそすぎてすいませんとしか言えなくてすいません・・・ >>944
ttps://github.com/eiichiromomma/CVMLAB/wiki/OpenCV-Thinning >>944
ありがとうございます!!!
出来そうな気配が漂ってきました!!
https://imgur.com/XX9Efl8
センターラインを作った後に
findcontourを使ったので
輪郭線が二本になって頂点の座標の個数が二倍になってますが
まだよくわかんないですが入れ子になっているデータを
もうちょっとよく見たらなんとかなりそうな感じになりました。
ありがとうございます!! 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
052IV レス数が900を超えています。1000を超えると表示できなくなるよ。