トップページ⇒tech
989コメント270KB

画像処理 その10

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2007/12/16(日) 08:03:02
画像処理プログラミングについて質問、議論を行うスレッドです
・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎

前スレ
画像処理 その9
http://pc11.2ch.net/test/read.cgi/tech/1183910525/
0939名無し募集中。。。2008/09/17(水) 16:27:45
線対称と違う言葉を使っていると言う事は3次元空間での欠陥認識なんですかね
0940デフォルトの名無しさん2008/09/18(木) 13:40:41
どなたか、H.264について詳しい人いませんか?
エンコードにおいて、ブロックの動き補償ベクトルの探索方法については規格化されていないのに
探索開始位置の決め方が規格化されている意味が分かりません。
分かる方いらっしゃいませんか?利用している書籍は「H.264/AVC教科書(インプレス出版)」です。
公式仕様書では8.4.1.3のセクションです。
0941デフォルトの名無しさん2008/09/18(木) 17:53:32
>>940ですが。
動きベクトル予測の意味を勘違いしました。
大変失礼しましたorz
0942デフォルトの名無しさん2008/09/24(水) 02:55:45
簡単な画像処理アプリを作ることになりました。
どの言語でやろうか迷ってます。
こんなんです↓

tifを読む。(数百枚を一度に処理したい)
↓
透かしを入れる
↓
tifで保存

C,C++,C#は一応使えます。
今のところC#でやろうと思ってます(作るのが簡単なので)が
速度が心配です。
大量処理だとC#は無謀ですかね?
0943デフォルトの名無しさん2008/09/24(水) 03:05:29
サイズにもよるしかけていい時間と処理するマシンの能力にもよるが。
別にC#だからどうってレベルの話でもないだろう、その程度なら。

ピクセル毎の演算を自力で、となるとちょっと辛いかも知れんが。
最近のC#はGPUでどうにかできるんだっけ?
0944デフォルトの名無しさん2008/09/24(水) 03:10:03
C#でもポインタ使えばCの半分くらいは速度出るんじゃないの
0945デフォルトの名無しさん2008/09/24(水) 03:44:50
とりあえず作ってみて(速度に)問題があるようだったら、
画像処理の箇所だけCで作り直せばいい

Cで組む場合にしてもアセンブラは最終手段
汎用ライブラリとして頒布するわけでもないし
0946デフォルトの名無しさん2008/09/24(水) 09:07:46
>>942
どうでもいいが、数百枚を一度に処理するのではなくて1枚ずつ連続して数百枚処理するのだろ?
先ずはC#で作って処理時間を測るのが基本だな。
0947デフォルトの名無しさん2008/09/24(水) 09:11:30
C#はピクセルにアクセスするメソッドがクソ遅いので
処理時間を気にするならやめたほうがいいよ。
バッチ処理なら動いておけばいいだろうけど。
0948デフォルトの名無しさん2008/09/24(水) 09:14:13
>>304
>>310
0949デフォルトの名無しさん2008/09/24(水) 09:36:57
遅いやり方を使わなければいいだろ
0950デフォルトの名無しさん2008/09/24(水) 10:52:16
Bitmapをピクセル単位で操作したときはBitmap.LockBitsでunsafe。
用途にもよるがGraphices系メソッドの手法や考え方に一度しっかりなれることも大切だと思うよ。
透かし処理には向かないかもしれないが発想を転換すれば意外にいろんなことができる。
0951デフォルトの名無しさん2008/09/24(水) 11:56:39
>>947
知らないのにレスしなくていいよ
0952デフォルトの名無しさん2008/09/24(水) 12:20:14
unsafe使うのは避けれないが、Cに近い速度は出るよ。
GUIまわりが楽に作れるのでC#が結局は一番楽だよ。
0953デフォルトの名無しさん2008/09/24(水) 12:35:21
LockBitsは知っているけどバッドノウハウだと思っていた。
C#のピクセルデータへのアクセスはこれを使うのが常識なのか?
0954デフォルトの名無しさん2008/09/24(水) 12:54:18
うぜえなこいつ
おまえは遅いやり方でやってればいいじゃねえか
0955デフォルトの名無しさん2008/09/24(水) 12:54:34
常識か非常識かなんて心の底からどうでも良いよ
アンタの用途にGetPixel/SetPixelの速度が耐えられるかどうかだろ
0956デフォルトの名無しさん2008/09/24(水) 13:02:31
非推奨な仕様だったとしたら質問者にむやみに薦めるのはよくないだろ。
ただこれはMSDNにも例があったので俺が間違っていたよ。
0957デフォルトの名無しさん2008/09/24(水) 13:07:57
単なるいいがかりかよ
氏ねカス
0958デフォルトの名無しさん2008/09/24(水) 13:24:54
(・∀・)クスクス
0959デフォルトの名無しさん2008/09/24(水) 15:19:03
>>942

つ 「OpenCV」
0960デフォルトの名無しさん2008/09/24(水) 16:03:12
なんでバッドノウハウとか非推奨だと思ったんだろう。
どうでもいいけど。
0961デフォルトの名無しさん2008/09/24(水) 16:55:10
こういう流れじゃないだろうか・・・?
unsafe → 安全じゃない → 危険 → 使っちゃいけない
0962デフォルトの名無しさん2008/09/24(水) 19:42:13
名前からしてgetPixel/setPixelだろ
0963デフォルトの名無しさん2008/09/24(水) 19:46:18
なにを言ってんだおまえ
0964デフォルトの名無しさん2008/09/24(水) 22:08:41
GetPixel()、SetPixel()を使うとかめみたいな遅さになるだろ
速度重視するならBitmapクラス、BitmapDataクラスを使って
画像データへの先頭ポインタをとる他ないだろ
0965デフォルトの名無しさん2008/09/24(水) 22:30:07
何?今頃来たの?
09669422008/09/24(水) 23:48:41
ためしにC#とCで作ってみました。
ポインタ使って、for文内でプロパティも使わず、ネイティブコードにして
最大限に速くしたつもりですが
Cのが圧倒的に速かったです。
0967デフォルトの名無しさん2008/09/24(水) 23:52:16
>>966
それは既知。問題はおぬしがそのC#コードの速度を許容できるか否かにすぎない。
0968デフォルトの名無しさん2008/09/24(水) 23:54:48
>>966
何倍?
0969デフォルトの名無しさん2008/09/25(木) 05:40:34
OpenCVでいいだろ
C#より機能そろってるし速いし
GUIだけC#にしたらええやん
0970デフォルトの名無しさん2008/09/25(木) 14:39:56
OpenCV OpenCVって馬鹿の一つ覚えみたいに言ってるやつはなんなのかね。
求めるすかし処理がOpenCVで出来る範囲だったらいいけど、出来なかったらC++/CLIで書いて
ガッチャンコとかするしかないし。
つーかOpenCVだってCでの使用を前提としたライブラリなんだから結局配列を直接いじってなんか出来なきゃめんどくさくてしょうがないぞ。
なんかOpenCVが魔法みたいに思ってる人がたまにいて困る。
0971デフォルトの名無しさん2008/09/25(木) 15:45:43
python.IML
+
python.ctypes + OpenCV

時々 python.numpy

0972デフォルトの名無しさん2008/09/25(木) 16:53:41
C++でフリーで使える高速な補間ズームが出来るコードorライブラリない?
自分の環境で申し訳ないんだけど、目安としては
1GHzのCPUでQVGA→VGAのズームが10ms未満が目標。

ちなみに、StretchDIBitsだと12ms、自作プログラムが40ms掛かったorz
0973デフォルトの名無しさん2008/09/25(木) 17:19:59
MMX/SSEあたり使えばPentiumM/800MHz相当で8ms台がででてるらしいが@自作コード
つかCPUの種別やメインメモリの構成も指定しないで時間だけ言っても意味ねーだろ。
0974デフォルトの名無しさん2008/09/25(木) 17:24:19
>>970
おまえOpenCVがなにかさえ分かってないだろ。

0975デフォルトの名無しさん2008/09/25(木) 17:26:42
C++でOpenCVを使って画像に対する処理を書いてDLLにしてC#から呼び出せばいいだろ
0976デフォルトの名無しさん2008/09/25(木) 17:34:20
(・∀・)クスクス
0977デフォルトの名無しさん2008/09/25(木) 18:21:03
>>973
どうもです。
CPUはCore2Duoだけどシングルスレッドだから事実上PenMと同等。
ポインタでのアクセス方法を弄ったら25msまでは向上したけど、
C++で書く以上これ以上速くするのは難しそう…
0978デフォルトの名無しさん2008/09/25(木) 19:24:17
>>972
そもそも補間アルゴリズムは何なのよ?
0979名無し募集中。。。2008/09/25(木) 19:45:43
ガッチャンコとかするしかなければガッチャンコすればいいんじゃん♪
今度打合せで使ってみようかな
VB6の資産とVC2008のDLLをガッチャンコするしかありませんっ!
0980デフォルトの名無しさん2008/09/25(木) 20:07:08
>>972
一応聞いておくが2倍専用じゃないよね
0981デフォルトの名無しさん2008/09/26(金) 01:55:27
よう相手にするよ、こんなの
09829722008/09/26(金) 02:03:11
>>978
双線形補間です

>>980
任意の倍率に対応できるようにしてます
0983デフォルトの名無しさん2008/09/26(金) 02:17:38
>>974
いいえ、週に3回はOpenCVのリファレンスを読んでいます。
0984デフォルトの名無しさん2008/09/26(金) 02:29:24
じゃあ俺は日に3回はOpenCVのソースコードを読んでる。
0985デフォルトの名無しさん2008/09/26(金) 08:33:42
一度も読んだことないし、これからも使うことはないだろう。
0986デフォルトの名無しさん2008/09/26(金) 09:42:46
俺は日に3回はOpenCVをデバッグしてる
0987デフォルトの名無しさん2008/09/26(金) 15:39:44
俺はIntel社員
0988デフォルトの名無しさん2008/09/26(金) 15:44:17
じゃあ俺はIntelの清掃員
0989デフォルトの名無しさん2008/09/26(金) 22:52:11
>>988
いつもご苦労さまです
レス数が950を超えています。1000を超えると書き込みができなくなります。