1 :
デフォルトの名無しさん :
04/07/27 11:59
Q:カラー画像をグレースケールに変換するには? A:グレースケールへの変換には、完全な解答はありません。 一般には、下式が用いられるようです。 グレースケール = 0.299R + 0.587G + 0.114B ちなみに、(R+G+B)/3はオススメできません
前スレの977で、二値化した画像のコントラストを語った大ばか者の964でございます。 言い訳を少し。 輪郭抽出の前処理として二値化をする必然性は無いです。たぶん。 「くっきりさせれば輪郭抽出が容易だろう」というのは、感覚的には理解できますが、 オペレータを使った輪郭抽出は「くっきりさせる」機能も包含してるので、無加工の (情報量が減っていない)画像に掛けることが多いです。 とはいえ、あらかじめ予測できるノイズの取り除く事は有益です。モアレとか、ゴーストとか。
RGBからLuvに変換する公式を教えてください。
底辺x高さ/2
>>5 RGB→LUVの変換は、LUVの定義そのもの。
定義を知らずに公式を聞いても身に付かない。
JIS-Z8518,ISO-9241-8を読みなされ。
8 :
デフォルトの名無しさん :04/07/30 01:53
David Marr の「ビジョン」(・∀・)イイ!!
9 :
デフォルトの名無しさん :04/08/01 16:51
せんせーフーリエ変換したやつを表示するには どうすればいいんですか?255を掛けただけでは 暗すぎてしまいます。
ヒストグラム出してみろ
>>9 255をかければいいかも、と思ったってことは、DC成分で規格化したのか?
だったら log(FF+1)/log(2)*255 にしてみればどう?
ま、要するに、好きなように表示しろってことだ。
表示方法がおかしくても、困るのは見る人間だけ。
絶対値に255000を掛けたらそれっぽく見えたので
これでいいや・・・。対数を取るのが常なのかな・・・。
最大値と最小値を取って正規化とかも考えたけど
めんどくさいからいいや・・・。
>>10-11 どうもです・・・。logスケールのを色々と試してみます。
>>12 もう少し頭を使って生きた方がいいよ。
何が必要で何が問題なのかすらわかってないでしょ。
偉そうに言うのは簡単だわな
プゲラ
17 :
デフォルトの名無しさん :04/08/03 19:44
>>17 3次補完の仕方について聞いているなら、
画像 拡大 3次補完 で Google 検索すると沢山でてくるけど・・・
17です。
>>18 >>19 ご返事ありがとうございます。
ちょっと難しく考え過ぎていたようです。
3次スプライン内挿を使う画像拡大アルゴリズムでいいようですね。
いちおうこれでやってみていたのですが、(ラグランジュ補完にあらず)
ちょっと不自然なところがあって気になっていたので、
書きこまさせていただきました。もうちょっとバグとりします。
>>21 たくさん出てくる方を教えてくれたわけで、
わざと漢字を間違えてる
>>18 は賢者。
ググレというやつも、そろそろ OR の使い方をおぼえろ
どうやってOR使うの?
27 :
デフォルトの名無しさん :04/08/05 05:11
ラプラシアン風の局所オペレータでバンドパスフィルタを作る方法はありますか
28 :
デフォルトの名無しさん :04/08/05 05:12
ラプラシアン風の局所オペレータでバンドパスフィルタを作る方法はありますか
卒論ですか?
30 :
デフォルトの名無しさん :04/08/05 05:14
ラプラシアン風の局所オペレータでバンドパスフィルタを作る方法はありますか
スルー決定しました
>>30 ありますか?と聞かれたら「あります」と答える。
>>32 そしてその次「どうやって作りますか?」と聞かれる。
SIMDが効きそうなループの書き方ってどうかくの?
自分でsimd書く
38 :
デフォルトの名無しさん :04/08/05 20:50
256*256の画像にFFTかけてローパスフィルタかけてからIFFTでもどすと 意図どおりの眠たい画像が得られるのですが.... 200*200の画像に56ずつゼロフィルして同様の操作をすると, それなりに眠たい画像は取得できるのですが, 画像周辺部の濃度が振動してしまいます. これを避ける方策はないものでしょうか?
>>38 ゼロフィルじゃなくて適当に鏡像とかで埋めてあげる必要があると思うけど。
この辺りどの参考書でも書かれてるんじゃないかな。
>>38 ゼロフィルだとそこに高周波成分ができちゃうでしょ。
39の言うように鏡像にするか、画像の外側をエッジの色で埋めるといいかと。
(画像のフチの1列をそのままコピーする)
42 :
デフォルトの名無しさん :04/08/06 09:44
FFTの特性から考えると鏡像の方がよさそう
>>38 関係ない話でごめんなさいだけど、
眠たい画像ってコントラストが低いときに使わない?
320*240の画像を、ガウシアンフィルタでぼかしたいんですが、 サイズが2の倍数ではないので、2DFFTせずに、 オペレータ(9*9ぐらい)で畳み込むことにしました。 ガウス分布の標準偏差σが小さいときはそれでいいんですが、 σを大きくすると、処理結果が暗くなってしまいます。 オペレータ大きくすると処理時間かかるし… 明るさを保って激しくぼかすには、どうすればいいでしょうか?
>サイズが2の倍数ではない あ?
2のべき乗ではない、の書き間違いでしょう。
>>42 鏡像の端はどうなってんだ?またその鏡像にするのか?
>>49 鏡像の鏡像の端はどうなってんだ?無限にループさせるのか?
厨スレになってきたw
53 :
デフォルトの名無しさん :04/08/08 08:36
こんな画像ボードないでしょうか? (0)PCIバスである。 (1)NTSC映像入力である。 (2)オーバーレイができるNTSC映像出力がある。 (3)映像入出力は1系統づつでよい。 (4)映像入出力端子はBNCである。 (5)外部トリガが使える。 (6)5Vから24Vのデジタル入出力が2点/2点程度ある。 (7)上の(5)(6)は、基板じか、でなく、ボードのL字金具に端子がついている。 (8)Win2000、WinXPで動作する。 (9)DirectShowを使わずにプログラミングができる。 (10)値段はSDKこみのボード1枚購入で30万円以下である。 (11)日本製でなくてもよい。 いまどき(2)の条件が足をひっぱってしまいそうです。 DirectShowは、よくわからないので理解しやすいSDKだとうれしいです。 画質は少々ノイジーでも可です。 PCIバスのボトルネックによる若干のフレーム落ちには目をつぶります。 識者のレスをお待ちしております。
フーリエ変換、なかでもFFTについて書いてある本などはけっこうあるけど、 処理したいデータが2のべき乗ではない時とか、実践テクが書いてあるのは少ないよ。 こういう場合ってソースをコピペできても応用ができないんだよ。 /* データ数は2のべき乗を与えること */ というコメントを見たりすると、キツいなー、と思うね。 まあ、そう"厨"とかってツッコミなさんな。 あんただって知らねぇこといっぱいあるだろ。
>>44 注目画素のオペレータ係数と、その周りのオペレータが、
いってこい、の状況になっていれば、暗くはならないはずですよ。
σの大きい時だったらそれなりに摘要する注目画素への重みを可変しないとね。
バグってるだけなんじゃないですか?
>>56 レスありがとうです。
ソース見直しに逝ってきます
>>57 切り捨てになっててでかいほど暗くなってんじゃね?
>>58 ありがとうっす。
ガウシアンフィルタの9*9のオペレータを、
総和が1になるように正規化してませんでした。
そのせいで、σを大きくすると、暗くなったみたいです。
>>53 それのどこがプログラムの質問?
ハードは探してから来てね。
第一、それで何するか知らんけど、
単にカメラ画像に何かをスーパーインポーズするだけなら
画像処理とは言わんよ。
>>60 画像処理の結果表示やクローマ・キーなどをしたいんじゃないの?
別にプログラムだけにこだわるなって。
初心者がステップアップしたいときにブチあたる壁だぞ。
いつまでもLennaやアイドル写真のスキャンでもなかろうて。
(かきこみの内容が初心者っぽくないけどな)
>>53 サイバーテックのCT-xxxxはオーバーレイできるぞ。
DIOが欲しいっていってるから、
エンターテイメントじゃなくて工業用かな?
年末にヨコハマでやってる画像機器展てどんな感じ?
意外と照明屋さんが多い。
>>60 まあ、いいんじゃないの?他に適切なスレも板もないし。
俺はPCで簡単に使えるステレオカメラ(または複数台繋げるUSBカメラとか)探してます。
安くて良いのがあったら教えて。
>>64 USBカメラが2台とも別のデバイスと認識されるかどうかはわかりませんね。
私、DirectShowがらみの分野はとても不得意です。
確実なのは複数の映像信号を入力できるPCIボードに、
安いNTSCカメラを接続することでしょう。
私の知っているうちでは以下に示すやつが最安値です。(工業用では)
ttp://www.ads-img.co.jp/machine_vision/euresys/picolo/ ただし複数映像入力っていっても、
ひとつのメモリチャネルに電子アナログスイッチを入れ換えて
流し込むだけなので、最低33msecのズレはありますよ。
だから高速移動体の三次元位置状態を計測するのだったら、
2系統のメモリがオンボードで独立しているような高価なのじゃないとだめです。
もっと安いの知っている人は書き込んでほしいな。
ツナギ目の無いテクスチャってどうやって作るんですか?
>>66 つなぎ目のないテクスチャなんてない。
1枚で貼り付けられる大きさのもの用意しろボケ。
聞きたいことは、つなぎ目をどうすれば目立たなくできるかだろ。
>>67 そこまで想像力があるのだったら教えてあげなよ.僕はしらないけど.
>>66 複数画像の貼り合わせだったら教えてあげるよ.
>>66 の言いたい
>ツナギ目の無いテクスチャ
のもう少し詳しい説明がないと進まないな。
画像の右端と左端、上端と下端が連続した模様になっててタイリングしたときに綺麗に見えるやつのことじゃないか
>>71 テクスチャって言ってるから3DCGで使うと思われ。
>>66 1枚のピースを作ったら9枚並べて調整。
そこから1枚に切り抜く。
>>66 は、お盆休みをとりました、彼女と楽しく旅行でもしているのでしょう。
休み明けにココを覗いて宿題の答えが生成されているのを楽しみにしているのです。
しかし、もう少し分解能の高い質問内容にしておけばよかったと後悔するでしょう。
>>53 CORECOのBandit-2CVなんかどうかな。
端子がBNCではないけど。IOは勝手に調べてくれぃ。
オーバーレイってハードウェアオーバーレイのことだよね。
77 :
デフォルトの名無しさん :04/08/11 14:32
若干スレ違いな気がするのですが、質問です。 作成した連番ppmファイルをAVIファイル(できればmpeg)に 変換できるようなソフトって何かないですか? bmpからだとAVImakerとかが見つかったのですが。。。
>>77 どっかにppm→bmpがあるだろうから、二段階でやれば?
Imagemagickのconvertとかffmpegとか...
>>77 >>79 のいうとおりだ。
この機会にバッチファイル(*.bat)の使い方を覚えるとイイコトあるよ。
あ ppm なのか.... shでもいいな。
>>78 の示してくれたスレッドはテンプレテンプレでウザいよ。
そもそもppm->bmpなら簡単に自作できないか?
>>83 簡単だけど、初めてだとbmpのヘッダ部分が面倒くさい。
データの格納順がボトムアップなのがなんかいや。 DWORDアライメントなのもなんかいや。 といいつつBMP使ってるんだけどね。
MS製品ですら読めない可能性は在るがトップダウンBMPは作成可能だ
>>86 作成可能なのは知ってるけど、読めるアプリある?
ペイントブラシでさえダメなのよ。
読めるアプリあるの知ってる人かきこんで〜。
ここでちょっと質問。 windows bmp のデータが下からのやつを 「ボトムアップ」 と言っているようですが、 その用語は正しいのですか? なんか、別のもん想像しちゃう名前だなぁ。
>>88 Windows用語としては知らないけど、上下逆は普通 upside-down だね。
ボトムアップだと、下から積み上げる、になっちゃうから。
妙に気になってきたので自分で調べてみた。 bmp のフォーマットの説明をしているところをいくつか見たら、 Pixels are stored bottom-up, left-to-right. という記述を発見! 結論:「ボトムアップ」と言うらしい。
>>66 上位レイヤにコピーして四等分
右下と左上、左下と右上を並べ替えてエッジを適当になじます
でよくない?思いつきなんだが
92 :
デフォルトの名無しさん :04/08/12 20:08
聞きたいことがあります。 JAVA・VB・VCのいずれかの言語でUSB接続のWEBカメラをプログラム上で制御したいのですが、画像処理関連で調べても 参考になる書籍やWEBが見つかりません。 勉強になる書籍などありましたら紹介していただけませんか? よろしくお願いします。
自己レス DirectXのコンポーネントのDirectShowを扱うことでカメラの操作ができることが わかりました。 手がかりが掴めたので一人で調べていけそうです。 スレ汚し失礼しました。
94 :
デフォルトの名無しさん :04/08/13 21:04
テレビなどでよく見る特殊効果で、アルキメデスのらせんみたいに、 グルーッと回っていくのは、どうやって変位マッピングするのかお教えください。 実例だせ、といわれると思いつくのがないのですが、 時々、目にするんです。
「変位マッピング」て、Cマガで「置換マッピング」って、 紹介されてたやつのことか?
雑巾を絞るような変形のことだろうか?<アルキメデスのらせんみたいな 回転軸方向の距離に応じて回転角を決めるわけだけど、回転軸が曲線の場合は形状に回転軸情報を持たせないと、滑らかなひねりは難しいと思う。
>>98 あ、そうです、右側の回る感じのやつです。
ありがとうございます。
昨日テレビを見ていて実例があったのですが、
「から騒ぎ」のなかの"さんま愛の説教部屋"のタイトルテロップが
グルーッと回るやつでした。
1時期、波紋のマッピングがテレビやポスターに氾濫しましたが、
最近すくないと思いません?飽きちゃったんですかね。
下品だからね
昔さ、モノクロ画面の一部に花があって、 その部分から徐々に全画面がフルカラーになるエフェクトが流行らなかった? 子供心にどうやってるんだろ、と思ってたよ。次はどんなエフェクトが流行るんだろうね。
>>97 ウルトラQのって 水面にインクをたらして 水槽の水を動かして
作ったんじゃなかったっけ?
回転写像の回転角を回転の中心からの距離の関数にすれば
そこそこ似たようなもんは出来そうですね。
みんな、どう思うか聞かせてくれ。 プログレッシブ符号化の プログレッシブ と ディスプレイのプログレッシブスキャンの プログレッシブ って ほんとに同じ意味なのか? 正反対の動きしてないか?
まず辞書でも引け。
画面の奥の方向にZ軸があると考えて、 exp(-z/A)・sin(z) exp(-z/A)・cos(z) のような変位があると良さそうな感じ。
ベルヌーイのらせんって感じですかね。 ん、ちょびっと違うかな。 やってみます。
>>103 ま、あんま気にするな。
プログレッシブスキャンが、従来のインターレースにたいして、
「革新的スキャン」という意味だったら、絶対に違う意味といえるが。
とびこし走査をしないという意味で、
「漸進的スキャン」なのだったら、似ているともいえる。
>>103 漏れは プログレッシブスキャン のネーミングセンスが悪いと思う
インクリメンタルスキャン
>>94 それっぽい画像ができたのでみてくれ。
って、その前に画像のアップロード方法教えてくれ。
中心から半径rをパラメータに回転でいいんじゃない? θ=f(r)で r=0 → θ最大、r=rmax → θ=0 fは指数関数かな
>>113 それはぼくもやってみたけど、探すのがめんどい。
ここのこのスレッドでも使え とか言ってくれると楽なんだな。
ちゅーか 画像見てもしかたないか。
ソースを晒す気はあるのだが、、、
もし、もし仮にぼくが VB で作っててもいじめない?
いじめないよね?
>>114 >θ=f(r)
そうです。ただそれだけ。
0〜255(255以外でも可)の値を入力して 色相データ(色相環の外周みたいなの)をRGBで出力するプログラムを作りたいのですが、 数行程度で計算できないのでしょうか。 if文を使えば出来るのですが無駄が多いと思うのでよい方法があれば教えてください。
>>116 H=max(R,G,B) のやつは場合わけはしかたないと思う。
H=R+G+B のやつなら簡単になると思うが。
テーブルにすればh[i]で終わり。
色相環は地道に造るしかないねー。 r= p<255 ? p : p>511 ? 768-p : 255 ; p=(p+256)%1024; g= p<255 ? p : p>511 ? 768-p : 255 ; p= (p+256)%1024; b== p<255 ? p : p>511 ? 768-p : 255 ; コピペで楽は出来るけど。
RGB等比率分割にしてしまうと綺麗な色相環にならない
そうだったのか。輝度一定とか? でも、青と緑の彩度を変えるのもおかしいな。 うーん、奥が深い。
ありがとうございます。適当にいじってみます。
>>121 青とか緑とか人間の目の感度特性を別にしても、色相上で等間隔にならねぇって事じゃねーの?
色相って色立体で中心角のことだろ。
画像処理を基礎から勉強したいと思います。 将来的には、顔写真から顔のパーツを(だいたいの位置で)抽出できるようになりたいのですが。 どういった本、HPが参考になるでしょうか? アマゾンで「画像解析」と入れて検索してみても、あんまりぱっとくるような 本がないのですが…
画像認識はやったことないけど、たぶん、画像処理の基礎は大事だよね。 というわけで、私が入門で使った本を紹介しておきます。 ・C言語で学ぶ実践画像処理 ・画像処理標準テキストブック―Image processing
>>125 ありがとうございます。
画像認識は画像処理が基本にあると思うので、画像処理から勉強してゆこうかと。
128 :
デフォルトの名無しさん :04/08/20 16:47
TIFF画像でモノクロ画像かカラー画像かを判別するには どのようにすれば良いでしょうか。 ヘッダで区別する方法が分かりません。。
129 :
デフォルトの名無しさん :04/08/20 17:00
パソコンから携帯に画像を送りたいんですが サイズがオーバーして受信できません。 それでパソコンで画像を小さくしたいんですが どうやったら画像を小さくできるんですか?
truncateするとか
>>131 ありがとう御座います。よく分かりました。
なんとか出来ました。
ええっ もう出来ちゃったの? TIFFってありえないくらい仕様でかくない?
>>133 どこで判別するか分からなかっただけで、
ある程度基本コードは出来ていたのでー。
それが分かったらチャチャっとw
136 :
デフォルトの名無しさん :04/08/21 09:18
ラベリング(ブロブ解析)において、 水平方向最大弦長、垂直方向最大弦長は、どのようにもとめるのでしょうか? ちなみに輪郭線追跡は実現できています。
情報追加です、 ラベリングが完了したランレングスコードも生成できています。
>>136 ランレングスでも輪郭でもいいから、x座標でソートしてy座標の最大最小を求める、とか、
連結領域をラスタ順に走査するとか、そんな感じで直球処理すればいいのでは?
ところで、最大弦長って言葉は恥ずかしながら初めて知りました。
ラベリングのことをブロブ解析って呼ぶのもあんまり慣れてない。
これってコグネックス用語?
>>138 やっぱり、そういう総当たりの直球勝負しかないんですかね。
「ブロブ(ブロッブ)解析」という言葉は、
コグネックスじゃない画像処理装置やソフトでも使ってますね。
「コロニーカウント」と呼んでるメーカーもあります。
もしかして最初に提唱したのはシルマンちゃんかもしれないけど、
画像処理の黎明期には私は産まれていないので、なんとも言えません。
140 :
デフォルトの名無しさん :04/08/22 09:02
すみません教えてください。 画像処理回路やLSIの設計をするためにはまず画像処理 自体の勉強をしなくてはならないのでしょうか?
>>140 入出力の仕様がキッチリ決まってるなら画像処理については
常識程度で十分と思うけど。
必要な技術だけつまみ食いすればいいじゃない?
常識すらないのです。 何から手をつけて良いのか・・。
画像処理の知識と回路やLSIの知識があれば十分
今電気電子系の学科に在籍している大学生です。 やはりこの辺は独学でないと修得できなそうなので・・。 本やパソコンで画像処理、LSIについて学びたいのですが・・。 なにか参考になる物があったら紹介してくださいませんか?
>常識すらないのです。 なるほど。
148 :
デフォルトの名無しさん :04/08/22 15:27
>>145 「
>>140 LSI architecture image processing
とか
LSI vision chip
みたいなキーワードで検索してみれば?
」
くらい言ってやれよw
ま、「参考になる」サイトって言われてもどれが参考になるかは
本人次第だからアレだけど。
146は私ではありません。 (2ちゃんも初心者なんで質問しづらくなるし、小心者なので こういうのは勘弁してくださいお願いします) 画像処理の〜〜を作るのに要する技術、何を始めればよいかといった レベルの情報が欲しいです。
>>150 お前、いい加減にしろよ!
かわいそうだろ!
152 :
デフォルトの名無しさん :04/08/22 16:26
そんなことしなくても、昼休み外へメシを食いに良くだけで夏を実感できるよ
>>144 図書館とかはないの? それらしい本探して、1冊1時間のペースでめくれば
様子くらい分かると思うけど。
学校になきゃ、市とか町のに行く。なぜか結構予算持っている。
156 :
デフォルトの名無しさん :04/08/22 17:19
>>140 ちなみにおまえ、148の検索はしてみたか?
>>155 「画像処理の〜〜」で、「画像処理のビッグウェーブ」と読むんじゃないかな?
ちなみに「〜~」は「周波数分解」と読む。
いろいろありがとうございます。
>>155 〜〜は回路とかLSIです。
>>156 検索しました。回路とかトランジスタのことは分かるのですが
個々の組織を説明する専門用語が理解できない物が多くて・・。
自分でも探してみますが何かおすすめがあったら教えてください。
仕組みが理解できていたら十分なんでしょうか?
>>160 煽るつもりは決してないんだけど、高い授業料を払っているんだから、まずは大学の
教授なり助教授なり助手なりに聞くべきでは?
キミは、連中の給料を払ってやっている客だ。堂々と聞けばいい。
>>158 ちょっとだけワラタ
163 :
デフォルトの名無しさん :04/08/23 20:50
>>162 そういう発言の出てくる君は、いい環境で勉強できたんだなぁっておもうw
漏れの大学なんて、学校や先生なんてあてにならんかったよ。
まじでネットの方がマシ、みたいなw
((院からは他の大学に移ったからいいけどな))
学生は2chばっか見てないで勉強しろ
>>140 私が思うに、そう都合のいい本はなかなか無いと思うな。
まず回路設計に使うツールをしっかりと把握して、
どっかで(ここでもいいけど)仕入れた処理アルゴリズムを
どう回路に落とすのか。
そこが大変なんでない?
たぶん卒研だと思うけど、もう少し具体的に 何がやりたい
か言ってくれないと ここの住人も答えに困るだろう。
どんな処理をしたいのかも決まってないなら、
もう少し環境を晒してアイディアを募ったらいいのでは?
とりあえず最近のインターフェースにまんまな特集があった気がするが
, -――--、 ./ \ / ノノノノVV人| | /ノ へ へ ソ | ノ -・' |・-' | (61ノ ( └J ) ヽ|| | | \ ヾlココ | \___ノ
あぁ、まんま→さんまか… 気づくまで2.7秒かかった。
画像処理は素人ですが、24 bit color のビットマップの絵を「ペイント」で 8 bit color に変換すると、ファイルは小さくなっていいですが、256 色の テーブルは全部使っていないですね。折角のテーブルだから、使わない色は 止めて有効な色のみのテーブルにするような変換ツールというのは、ないの でしょうか。
何の意味があるのかと小一時間問い詰めたい
意味不。 独自フォーマットになる悪寒。
>>171 自分でプログラム書いて、その有用性とともに報告せよ。
>>176 どうもありがとうございました。Padie とかを明日試します。
>>173 ,
>>174 風景で赤なんかないのに、赤や橙がテーブルに付いていた。
>>175 より元の色に近い絵になるだろうと思ったモンで。8 bit にすると、
なんか暗い絵になった。
>>177 ここはお前が来る所じゃない。ソフト板に行け。
>>171 は、 ゲイチュの「ペイント」は もっとまじめに減色しろ!ぷんぷんっ!
と言っているのだな。
っだったら漏れも賛成する。
>>178 お礼参りに出てきたでよ。ちょいとご挨拶。
Padie を試しました。見事に色テーブルの256色を全部使っていました。
>>176 さん、重ねて感謝。
Padie Pro とかが、今は落とせないのが残念。
しかし、関連サイトでは、「原色」ツールなんて書いているやつがいる。
で、8 bit で簡単だから、色コード別の頻度をとるプログラムを組んで、
使用色数をカウントしてみた。
Padie は 256 だが、「ペイント」は 122 だった。
>>179 さんの言われる通り、タダのペイントに苦情言っても始まらないが
256 - 122 = 134 色は、なんの意味もないデータということになる。使用数
を 122 にして、テーブルを小さくしてくれても良さそうに思ったが、ま、
その程度なんでしょうね。
>>180 だからさ、「8bitの時のテーブルサイズは256」って決まってるんだってば。
>>171 >>180 ちょっと実際に ペイントでやってみるとわかるけど、
8bit で保存すると、既定の256色に無理やりしちゃうみたい。
使っている色数が122色ならその122色をテーブルに登録して
くれれば色が変わったりしないのにね。
テーブルサイズよりこっちのほうが問題だと思うな。
ゲイチュめ。
最適な256個のパレットを求めるのは、O(exp(n)) か O(n!) くらいの問題だよね。 充分研究価値があると思うが。
そりゃそうだ。他の方法も含めていろいろやられてる。 だいたい、如何に計算をごまかすかって話になるよね。 CPUパワーもどんどん上がってるし、興味を持った 人にはいいネタかと思った。そんだけ。
>>183 xPadie でも susie plug in だかを使うと bmp 以外の出力が可能となった
います。
windows では画像変換の filter を使っているようですが、公開されて
いませんよね。(.flt って拡張子)
これって MS が windows 提供先の特許だか著作権を侵害している話に
通じていて、公開できないのではとかんぐっています。
公開されていれば、みんな気軽に変換可能で、各自変換機能を入れる
不自由はなくなると思うのですが。
( ゚д゚)…
有料のペイント/ドゥローソフトなら、4/8bitパレットを1色単位で減色/編集出来るよ。 価格が少し高めだけど、MacromediaのFireworksがおすすめ。 より高価なPhotoShopよりも、パレットの最適化/手編集の効率に優れると思う。
>>187 ほうほう。そうなってるのか。
使用色数が多いときはともかく、少ないときは
色変えないでほしいよな。
何のためのパレットテーブルなんだよ。って感じ。
(ちゅーか減色じゃないし。)
色数が多くて減色するときもディザリングするかしないか
くらい選びたいよね。
OPTiXImageStudioは?
OPTPIXいいよね。
>>189 PhotoShopは減色を必要としない用途がターゲットだからしかたないね。
Fireworksはweb用途がターゲットだから減色機能がいい。
既定パレットも数種類選べ、画像にマウスポインタを合わせるとその色が
パレット上でフォーカスされるし、ディザリング・ロス圧縮強度も選べる。
最新版はPhotoShop並みの値段になったけど、2世代前のバージョン3
あたりを安値で探してくればコストパフォーマンスも上々かと。
同じMacromediaのFlashにはラスタ画像をベクタ画像に変換する機能がある。
web用途の枠を抜ければ面白いと思う。
>>165 卒研までになんとか基礎を覚えてあとは自分で
というところまでいきたいなと思いまして・・。
とりあえずなんもやったことがないのでWeb上の画像の処理
(加工など)とかから始めるべきでしょうか?
>194 あきらめて留年してください。 出来れば迷惑なので退学してほしい所ですが。
>>194 本当に素人なら、色空間とかフィルタリングあたりから調べて
みるのがいいと思います。
画像処理と言っても範囲が広いので、手持ちの回路設計道具が
大体どんな物かによると思う。たとえばどんな物が作れるのか?
信号処理っぽいものなら、コームフィルタとか、ノイズ除去とかかな。
フレームバッファが取れるなら、jpg enco/deco とか、FFTとかかな。
回路設計のノウハウをもつ君は貴重な存在だ。
画像処理なんて、数学屋とかの知恵を応用してるだけ。
それでも、ここにもそこそこのノウハウってもんもある。
困ったらアイディアもらいにまた来ればいい。
ボクのチンポも画像処理できるんでしょうか?
できるよ
199 :
デフォルトの名無しさん :04/08/29 23:31
拡大?縮小?
アンシャープマスクお願いしまつ
初心者です。ヴィジュアルベーシック6.0を使ってます。画像と画像を合わせて、新たに画像をつくりたいとき、どーすればいいんでしょうか。 二つの画像の一点をとり足し合わせていけばいいんですか?その時の色の指定はどうーすればいいんでしょうか。 すいません、おしえてください
>>201 何がやりたいんだ?
目的がようわからん。
単に2枚の画像を足し合わせたいのか?
>>203 >>201 は高度なことをおやりになる積もりかも知れないので間違うと失礼とは
思いますが、思い出すのは、エッチな画像を画面から保存すると、いいところ
を中心にバラバラになることがあります。これをピタッと合わせるにはお聞き
のような操作が必要かとゲスの勘ぐりです。
201です。すみません。具体的にいいますと、鳥が飛んでる画像と、山が移ってる画像をですね、合わせたいんですよ。 鳥と山の画像それぞれの一点x、yをとって、そこの色情報を足し合わせてあらたな画像として出力したいんです。 その色情報(RGB)はどうーやって足し合わせていくんですかね。A=picture1.point(x,y) ←これでAにピクチャー1の色情報を取得 して、、、、そっからわかりません。お願いします。
>>205 マルチするようなヤツには誰も答えないと思う
画像処理と言うほどのものでも無いけどな。
>>205 picture3.point(picture1.point(x,y).Normalize(), picture2.point(x,y).Normalize()) = picture2.point(x,y)&picture1.point(x,y)
暗い写真などを明るくするのに、明度を求めてこの値を上げるという方法がある のを知ったのですが、ぐぐったりすると、RGB からの変換で YCrCb 方式と HSV(HSL,HSI)方式が見つかりました。で、試したのですが、 YCrCb の方はおだやかに変化しますが、HSV の方は白とびが起きました。 Y も V も明度といってますが、素性は違うように思いますが、V というのは こういう操作には向かないのでしょうか。色の3要素として分かりやすいと 思ったのですが。
>>210 HSV で V をいじっただけで「白飛び」がおきるとすると、
それはプログラムのバグである可能性が高いです(HSLと混同しているとか)。
>>211 慧眼! HSL のままでした。HSV にしたら、明度が 0 - 255 で出てきました。
ありがとうございました。
213 :
デフォルトの名無しさん :04/09/04 16:58
どんな言語勉強した方がいいでしょうか?
日本語だ。
ねぇ。LabonteのSOM(自己組織化マップ法)ってわかる? わからないならわからない、わかるならわかると答えて下さい。どうぞ。
YCrCb って書いたけど、色変換の説明のサイトを見ると YUV ってのに当てはまる んで、YUV にいい直しますが、RGB に定数マトリクスを掛けて、そのまま、また RGB に戻すと、RGB の各輝度は落ちます。定数は少数以下3桁から4桁。 で、この変換をただ繰り返すと画像は暗くなりますが、こんなもんですか。 なにか、こうしたらいいとかあるんでしょうか。RGB は COLORREF 型です。
>>216 普通にキャストすると切り捨てだからかな?
四捨五入にしてみるとか。
みなさん、ありがとうございます。 RGB -> y, u, v -> y だけ変化させる -> RGB に戻すという手順で u, v はそのまま使っています。精度チェックでは y もそのまま。 y, u, v は double 型だし、定数はもっと有効桁があると違うかなと 期待していますが、少数桁の多い定数は、internet での入手は無理ですか。
>>220 0〜255→浮動少数→0〜255にしてんだからいくら少数の精度上げても
0〜255で切るんだから精度も糞も無いだろ
テレビの信号の都合だかで,yuv を RGB に変換した時に 0〜216 (だったっけ) の範囲にしてしまう計算式がありませんでしたっけ? とりあえず 210 が使っている計算式を晒してみては?
要所は以下の通りです。 double b, g, r, y, u, v; BYTE *lpPx; // 24 bit color の pixel data の位置 // limitVal() は、0. 〜 255. に限定する関数 b = lpPx[0]; g = lpPx[1]; r = lpPx[2]; y = limitVal( 0.2990 * r + 0.5870 * g + 0.1140 * b); u = -0.169 * r - 0.332 * g + 0.5000 * b;// +128 省略 v = 0.5000 * r - 0.419 * g - 0.081 * b;// +128 省略 //y = (double)getNewMeido((BYTE)y); / / 明度上げ下げの計算 *(lpPx++) = (BYTE)limitVal(y + 1.772 * u + 0.0012 * v + 0.49); // B *(lpPx++) = (BYTE)limitVal(y - 0.344 * u - 0.7139 * v + 0.49); // G *(lpPx++) = (BYTE)limitVal(y + 1.402 * v + 0.49); // R
>>215 SOMそのものは、画像処理と関係ないだろ。スレ違い
>224 どこもおかしくないよね。やっぱし >219 で FA か。 0.49 を足してるけど、例えば OpenDivX ではもう少し細かく 0.49999 くらいにしてたと思う。 あとあまり関係ないけど、B を求める時に +0.0012 * v としてるけど 正確に逆行列を計算してみると -0.000274967 * v にならない? あと全然関係ないけど、値を 0〜255 に限定する演算は「飽和演算」つって 英語では saturation つーんで、知っておくと cool。
>>226 お手数お掛けしました。有難うございます。
0.49 はここへ書き込んだ後、気が付いて桁を増やしました。
y を求めるところも、明度変更がなければ、limitVal() を通さないように
して、RGB の前後の値を表示させましたら、気持ち接近しました。
saturation は、収斂とかでは使ってましたねえ。
+0.0012 * v の係数は見直します。逆行列も計算して見ましょう。
余談ながら、HSV の方は割りと復元しますねえ。
ご覧になっている方へのご参考までに、逆行列の結果を上げます。
>>226 ご指摘のように B へ戻す係数は間違っていましたね。
尚、元の matrix の値は
>>224 の桁のでは、戻すときの Y の係数が1に
ならなかったので、桁数の多いものに変えました。これだと1になりました。
Source Matrix:
R G B
0.2990000000 0.5870000000 0.1140000000: Y
-0.1684000000 -0.3316000000 0.5000000000: U
0.5000000000 -0.4187000000 -0.0813000000: V
Inverted Matrix:
Y U V
1.0000000000 -0.0000368162 1.4019876003: R
1.0000000000 -0.3440777646 -0.7138853911: G
1.0000000000 1.7717952268 -0.0012593676: B
尚、逆行列の計算は、奥村晴彦先生のアルゴリズム事典P.39から取って
来ました。また復元値は改良されましたが、0x60 -> 0x5E の例もあり
ます。この辺が限界でしょうか。有難うございました。
>>228 Webでこういうの見つけたよ。ちょっと桁が多いかも。
(逆行列の検算はしていません。)
YCbCr(YUV,YCC)
Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
Cb(U) = -0.16874 * R - 0.33126 * G + 0.50000 * B
Cr(V) = 0.50000 * R - 0.41869 * G - 0.08131 * B
R = Y + 1.40200 * Cr(V)
G = Y - 0.34414 * Cb(U) - 0.71414 * Cr(V)
B = Y + 1.77200 * Cb(U)
>>229 Cb(U) の係数が微妙に違うようだけど、どうなん?
>>228 >また復元値は改良されましたが、0x60 -> 0x5E の例もあります。
ちゃんと逆行列を求めて中間double型で計算してるのに?
感覚的にはちょっと ありえん と思う。
limitVal( ) のバグってオチじゃないよね?
>>229 どうも。復元時の係数がこちらの計算とちょっと違う。
Source Matrix:
0.2989100000 0.5866100000 0.1144800000: Y
-0.1687400000 -0.3312600000 0.5000000000: U
0.5000000000 -0.4186900000 -0.0813100000: V
Inverted Matrix:
1.0000000000 -0.0009919263 1.4018452447: R
1.0000000000 -0.3451179032 -0.7142903900: G
1.0000000000 1.7710177315 -0.0001369360: B
また、228 の係数での復元誤差は、0.985573 だったのに 0.994123 に拡大。
復元誤差は、R, G, B 毎の差の2乗の計を加算数で割って平方根を求めたもの。
逆行列を計算するようにしたので、224 では復元時の係数を打ち込んでいましたが
計算したものを使うように変えました。更に VC++ 6.0 です。
>>230 どうも。
static double limitVal(double x)
{
if ( x < 0.0) x = 0.0;
else if (x > 255.0) x = 255.0;
return x;
}
で、やっています。
四捨五入したら?0.5足したりして。
いちいちYUVすべて変換せずとも R += r_lumi * 0.3; G += r_lumi * 0.6; B += r_lumi * 0.1; とかしちゃーだめなの?
いろいろお知恵をいただき有難うございます。
元の RGB と復元した RGB の R, G, B 別の誤差のヒストグラムを取って、いろいろ試しましたら
y = limitVal(....); で、limitVal() にいれる前に 0.49999999 加える。
y, u, v から RGB へ戻すとき、limitVal() に入れる前に 0.49999999 を加える
と、復元は、ま、バッチリでした。
>>230 さんの感覚に感謝。
>>230 そのやり方をよく知りません。
これまでは、明度を求めて、それを上げ下げできればとやって来ました。
で、どの辺の明度を多く上げ、他は少な目とかあると思い、今はベジェ
曲線で、山型あるいは谷型の曲線を当てはめています。指定は今はスライダ
ですが、できれば曲線をマウスで上げ下げしたい。
更に、U, V もスライダで動かしてみたい。今はひとのソースを持ってくる
だけですが。
>>234 >y = limitVal(....); で、limitVal() にいれる前に 0.49999999 加える。
そこは、double なんだから、+0.499.. の根拠が薄い気がする。
結果がいいんならしかたないけど。
ところで、気になるのは、
>>224 ではコメントアウトされているが、
>//y = (double)getNewMeido((BYTE)y); / / 明度上げ下げの計算
ここ。
+0.499..するなら、ここの引数のとこだと思うけど、、
YUVに写像されているので、正確に元に戻したければ、
Y は 8bit では精度不足と感じる。(たぶん12bitくらいはほしい。)
さらに U,V もBYTEでやったら精度不足に陥ると思う。
doubleのまま処理するのが良いかと。
感覚発言ばかりですまんのー。
>>217 ええと、可逆用の行列が定義されてたんじゃないかなー。
違うやつだったっけ?
もし、暇があれば調べてみる。
>>235 ご指摘を有難うございます。
>>//y = (double)getNewMeido((BYTE)y); / / 明度上げ下げの計算
>ここ。
>+0.499..するなら、ここの引数のとこだと思うけど、、
y = (double)getNewMeido(y);
の引数を double にしました。ここへ来る前に y を 0.0 〜 255.0 にして
いるので、その前に 0.4999.. を加えました。ここがミソでしたね。
>さらに U,V もBYTEでやったら精度不足に陥ると思う。
double のまま使うことに変えました。
(これらは、恥ずかしながら、人様のソースを闇雲に持って来て使ったもの
ですから、今やいろいろとボロが出ます。どこかの大學の資料で間違い
があったりして、学生さんも大変だと思いました。)
>>237 >y = (double)getNewMeido(y);
>の引数を double にしました。ここへ来る前に y を 0.0 〜 255.0 にして
>いるので、その前に 0.4999.. を加えました。ここがミソでしたね。
またしても検証もせずに感覚で言わせてもらうと、
+0.499.. というのは、整数にするときの四捨五入の為なので、
この前に足すのはやっぱり不自然と感じる。
getNewMeido( ) の戻り値が BYTE や int なら、
y = (double)(getNewMeido(y) + 0.499999);
のように戻り値に足すほうが自然かと思う。
それよりも getNewMeido( ) の戻り値も double にしましょう。
内部で切り捨てみたいなことが起きていなければ、
+0.499.. はここではいらなくなると思います。
ごめんキャストはもういらんか。 y = getNewMeido(y) + 0.499999; ちゅーか、0.5でもいいんじゃないの?
0.4999はどこから出てきたんだろうな
>>240 >>241 よかった、0.5 でいきましょ。
>>210 >>237 で、感覚ばっかじゃ悪いので、今、256*256*256 回のループで
全通りチェックしてみました。(最近のPCって速いなぁ)
Y,U,V が double なら
Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
U = -0.16874 * R - 0.33126 * G + 0.5 * B
V = 0.5 * R - 0.41869 * G - 0.08131 * B
//
Ro = (int)(Y - 0.0009919263 * U + 1.4018452447 * V + 0.5)
Go = (int)(Y - 0.3451179032 * U - 0.71429039 * V + 0.5)
Bo = (int)(Y + 1.7710177315 * U - 0.000136936 * V +0.5)
で完璧に戻ってます。
Ro = (int)(Y + 1.402 * V + 0.5)
Go = (int)(Y - 0.34414 * U - 0.7141 * V +0.5)
Bo = (int)(Y + 1.772 * U +0.5)
でも完璧に戻ります。
// のとこに
Y=(double)( (int)(Y + 0.5) )
を入れると 戻りません。
怪しいのは、getNewMeido( ) だと思います。
内部で整数処理してない?
折角ですから晒します。Bezier 曲線による明度変更です。 xxx0, yyy0 は int で slider から得た変更指定で、static global です。 明度 xxx0 のところを yyy0 変更する指定としています。 Bezier 曲線 r(t) = A・(1-t)*(1-t) + 2・B・t(1-t) + C・t * t; の A =(0,0), B = (xxx0, xxx0 + yyy0), C = (255, 255) を制御点とする曲線を 求めて、旧明度に対応する新明度を求めています。第1項は結果的に不要。 引数 x は 0 〜 255 でないとまずいという理解です。 static double getNewMeido(double x) { double y, t, t0, t1, r, bumbo, xxx2, aaa; // Bezier curve は、t を媒介変数にしているので、 // x から一旦対応する t を求めて、更に y を求める // 以下は、t = (-b ± sqrt(b*b - 4ac)) / 2a の計算 if (!yyy0) y = x; // 復元チェックと無駄な計算排除のため else{ /* 長文エラーだったため、分割 */
>>243 の続き
xxx2 = 2.0 * xxx0;
aaa = 255.0 - xxx2; // 幸運にもゼロなし
r = sqrt(xxx2 * xxx2 - 4 * aaa * (-x));
bumbo = 2.0 * aaa;
t0 = (- xxx2 - r) / bumbo;
t1 = (- xxx2 + r) / bumbo;
// 2次式の解の計算終わり
if (t1 >= 0.0 && t1 <= 1.0) t = t1;
else t = t0;
// r(t) = A・(1-t)*(1-t) + 2・B・t(1-t) + C・t * t;
// limitVal() かけるから四捨五入を入れた
y = limitVal(2.0 * (yyy0 + xxx0) * t * (1 - t) + 255.0 * t * t + 0.4999999);
}
return y;
}
これに渡す引数のため、Y は limitVal(.... + 0.49999999) が必要で、
また、
>>242 での Ro, Go, Bo は BYTE 列に納めるため、四捨五入と limitVal()
が必要と考えました。このとき、getNewMeido() から返ってきた値に
0.499999...を加えておけば、Ro, Go, Bo 計算の全部の四捨五入になります。
>>243 >>244 (
>>210 )
>これに渡す引数のため、Y は limitVal(.... + 0.49999999) が必要で、
Y は この式だから
Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
何もしなくても 0.0 〜 255.0 の値しかとらないと思われるよ。
>// limitVal() かけるから四捨五入を入れた
>y = limitVal(2.0 * (yyy0 + xxx0) * t * (1 - t) + 255.0 * t * t + 0.4999999);
+0.5 のあと 整数型にキャストしなければ、四捨五入にはならないと思う。
そもそも、limitVal( ) に四捨五入は必要ないと思います。
>また、
>>242 での Ro, Go, Bo は BYTE 列に納めるため、四捨五入と limitVal()
>が必要と考えました。
そこはその通りですね。
私が int で実験したのは、-1 や 256 になっちゃうところも見つけるためでした。
とりあえず 見た感じでレスしときます。
また時間があればこっちでも実験してみます。
>>245 どうも。有難うございます。
>Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
>何もしなくても 0.0 〜 255.0 の値しかとらないと思われるよ。
馬脚が表れた感じですが、参考にしたソースは、BYTE 列を確保して、
Y, U, V を一旦全画面分格納していましたので、0 〜 255 のチェックが
ありました。それをそのまま残していました。(処理が pixel 単位です
から、全画面分の格納は止めたのですが、関連変更不徹底です。)
他にも冗長なところがありますので、これから見直します。Bezier の計算
も pixel 毎では、重複してます。8 bit color まではこのままでも、
24 bit color では、table look up がいいでしょう。 1024 x 768 とかに
なるとなおさら。
>>244 (
>>210 )
>このとき、getNewMeido() から返ってきた値に
>0.499999...を加えておけば、Ro, Go, Bo 計算の全部の四捨五入になります。
そういうことか。ゴメン。 ちゃんと読んでなかった。
で、結局うまくいっているなら無問題でいいのかな?
一応報告すると、
>これに渡す引数のため、Y は limitVal(.... + 0.49999999) が必要で、
うちでは、limitVal も +0.5 もなしで そのまま y = getNewMeido( y ) で
きちんと元に戻ってるよ。
>>247 >>これに渡す引数のため、Y は limitVal(.... + 0.49999999) が必要で、
>うちでは、limitVal も +0.5 もなしで そのまま y = getNewMeido( y ) で
>きちんと元に戻ってるよ。
戻りますねえ。余計な計算を止めました。有難うございました。
お蔭様で、復元はメデタシメデタシです。みなさんのご教示に感謝。
先日来お世話になりました 210 です。また出てきました。 画像処理特有の問題でもないので、スレ違いなら他へ行こうと思いますが、 ご親切に甘えて、先ずはここに聞きに参りました。 前回明度を上げ下げする内容でしたが、どれくらい上げ下げすると絵がどれくらい 変わるかを見るため、slider(trackbar)の移動(WM_HSCROLL)に応じて preview 欄に 絵(350 x 230)を表示しています。333Mhz のマシンで 8 bit color(2 ms) までは、 間断なく変化していいのですが、24 bit color になると 180 ms 位時間がかかって preview は変化しません。(別の 2 Ghz マシンだと変化します) WM_HSCROLL が来ると、明度指定の RGB を作って(ここで時間消費) InvalidRect() を発行し、 WM_PAINT で、SetDIBitsToDevice() で preview pane の hdc に描画しています。 debug print してみると、それぞれを通過はしているようです。描画が終わるまで 次の WM_HSCROLL が来ても無視するよう、flag を立てたりして見ましたが、 絵は更新されません。遅いマシンでダメなのか、解決策はあるのか、お分かりの方 お教え下さい。尚、このマシンは win98 256MB, API dialog base 処理です。 (元の絵は大きいのですが、一旦 pane サイズにしていじっています)
>>249 サイズを小さくしてテスト(16×16)ぐらい。
それで動くなら、グラフィックボードの問題(多分)
ちょっとづつ大きくしてテスト
細かいことはWinAPIスレへ。
AlphaBlendで擬似的に一撃!
>>249 UpdateWindow って知ってる?
>>249 メモリ不足とかかな?
キャッシュがヒットしなくなってすごく遅くなることもある。
>>251 の意見にさんせー
レス有難うございます。
>>251 pane の縦横1/2 の 157 x 115 では動きます。縦横 2/3 では駄目でした。
グラフィック・ボードの限界なら、情報を得て、サイズを逆算できれば
良いわけですが、??? ヘルプを検索しても参考情報が出てこない。
>>252 サンプルをちょっと探しましたが、見つかりませんので、後で。
>>253 InvalidateRect() の後、UpdateWindow() では、絵が出ません。
UpdateWindow() は、SendMessage() だろうと理解して、
私は、WM_PAINT を PostMessage() しています。(update が
保証されない原因でもあるでしょう)
>>254 キャッシュのことをよく分かっていませんが、メモリ全体のことで
いうなら、この dialog を起動した状態を「PC情報局」でみますと、
141 MB 空いています。VC++ もいる状態です。(256MBがマシン限界)
(ビデオ・システムのメモリは取説に 4 MB とあります)
>>253 WM_PAINT をポストするのは絶対にまずいです。あと SetDIBitsToDevice ではなく、
StretchDIBits だとどうなりますか?
あるいは DIBSection で DIB 側を確保して、単に StretchBlt とか。
デバイスコンテキストの知識の無さと画像処理は また少し違うような気がする
今朝方夢を見て、早速起きて試しましたら、恥ずかしながら自分のミスが
ありそうです。原因はまだ分かりませんが、2240x1488 の写真を 1024x768 に
縮小した絵でテストをしていましたが、2240x1488 の元の絵で試しましたら
不思議、slider に追随して絵が変わりましたです。249 は一旦撤回です。
(pane size への縮小で何かがあるんでしょうか。WM_PAINT は PostMessage()
のままです)
お騒がせしました。軽率赤顔の至り。
>>256 1024x768 の絵で試した結果では、StretchDIBits() でも同じでした。
StretchBlt() はまだ試しておりません。
>>257 申し訳ありません。私もそう自覚しております。で、249 でお断りした訳です。
話題がいくつも飛び交っているスレだと遠慮すべきと思いました。あるいは
即スルーでしょう。
元の絵の縦横比を維持して preview pane に収まるサイズを「きちん」と求めて、 試しましたら、動くようになりました。(これまで既存のルーチンを使用) hdc の矩形をはみ出していた怖れがありそうです。しかし別のマシンで動いて いたのは不思議。たまたまですかね。本当にお騒がせ致しました。
フォトショップでは HSI を使用していると聞いたのですが、 色相・彩度編集にある明度って HSI の I ではないのですね。 色相、彩度は HSI 変換して単純に増減してやれば同じような処理が出来ました。 明度はRGBここの値を増減しているだけのようですがどうやっているのでしょうか?
HSBだったような
>>261 ここの過去ログにあったHSV(=HSBですよね?)とHSIのコードを参考にしましたがそのどちらでもないようです。
ただ色相・彩度についてはHSIのとほぼ同じような結果になっております。
RGB各値について
R = ( 1 - 明度 ) R + 明度 (明度>0)
R = ( 1 + 明度 ) R (明度<0)
としたらそれっぽくなったかんじです。←まだしっかり検証していませんが。
R = R + (255 - R) * 明度 (明度>0) かなぁ…
いろいろ試してみました結果を書いておきます
フォトショップの色調補正⇒色相・彩度の処理は
>>262 ,263の式でRGBの明度を処理
その後HSI空間でHとSを増減(単純にパラメータ -1〜1を加算。S==0の場合は常にS=0)
のようです。かしこ
266 :
デフォルトの名無しさん :04/09/11 00:05:49
その節はお世話さま。
>>266 10年以上前に大学で話を聞いたが、やっていた。cpu が遅くで困っていた。
先端なんとかってのは大体こういうのに手を染めている。
security 絡みで、やっているし、通産省も旗振っていた。
学生の卒業論文も百花そうめいではないか。実地の面通しでどこで何を
使っているかは公開されていないようだが。
>>266 研究環境は米国がいいが、space perception 能力はアジア人がダントツ。
やりたい人は米国へ行く。国でみるか、人でみるか。
StretchDIBits(BitBlt等も同様)が遅くなる場合と対策 拡大縮小:拡大縮小はDIBデータ操作の時点で実施。StretchDIBitsは等倍で。 ビット演算:同じくDIBデータ操作の時点で実施。StretchDIBitsはSRCCOPYで。 ビデオモード変換が伴なう場合:32bit専用にする。 DIBバッファが確保出来ない場合はあきらめる。
270 :
デフォルトの名無しさん :04/09/12 03:26:32
VNCクライアントを作ってるんだけど TightVNCってjpeg圧縮が使われてるという話だけど、 このjpeg圧縮っていうのは普通のjpeg画像としてデータが送られてきてる と考えていいんでしょうか?
>>270 そんな事をここで聞くようなことでは作るのは難しいな
>>270 スレ違いだろ
VNCでやりとりしてるデータのどこが画像処理だ
271のようなレスが来るのも当たり前だろ
ディスプレイ用途に限った機能拡張版JPEGが使われてるなら興味ある。<TightVNC
フーリエ変換系は画像処理と言って良いと思う。
>>270 の意図がそこにあるかどうかはわからん。
276 :
デフォルトの名無しさん :04/09/13 18:47:50
メモリ上のJPEGファイルイメージをピクセルイメージするために libjpegを利用しようと思ってるのですが、 この場合メモリ用のsource managerをつくってあげればいいんですよね? もしリファレンス実装か参考にできるいいサイトがあれば教えてください。
JPEG⇒BMPを解説したサイトは結構ある。 24bitBMPに変換して処理ということで。
こやつめ
>>276 jpeg_read_scanlines() で、横1行分の RGB が出てくるので、格納していく。
bmp の biHeight を負数にすればそのままでもいいわけだが、気持ちが悪いので
下から埋めるってのが、面倒だな。RGB も逆だし。
自分は随分昔で、RAM も少なかったので、ソースを見て、エラーメッセイジを
簡単にし、圧縮は止めてと....解析したからなんでもなかったが、今は簡単に
すまそうと却って大変だな。結構冗長なコードがあった。
いや、そういう話じゃなくてファイルじゃなくてメモリ上のJPEGデータをデコードする話だろ?
>>280 ああ、そう読まれたか。ファイルを読むとこは、メモリ・アクセスに変えた。
例えば、getc() とかは、mygetc() にして、メモリのポインタを進める。
出口は、jpeg_read_scanlines() で同じ。
Photoshopプラグインについてはこのスレでいいんかい?
まあ・・・画像処理かもしれないな プラグインの作り方とかな話題じゃなければ。
>>276 モジラのソースとか、image magikのソースとかに
載ってませんか。
無念...
>>279 ていうかトップダウンのbmpってほとんどのソフトが読めないよ
読めないソフトのほうが問題だな
290 :
デフォルトの名無しさん :04/09/15 06:44:56
bmp→jpeg変換とか、画像処理全般について解説されてる 本でオススメのを教えてください
bmp->gif bmp->png bmp->jpeg2000 bmp->tiff bmp->mag bmp->pi bmp->pic gif->png (ry 何ページの書籍になるんだろ。
>>287 CG技術板じゃない?俺もあっちのスレ時々見てるし。
(でもほとんどソフトの使い方の話ばかりだが・・・)
>>290 自分でbmp->jpegを実装するよりimagemagic使った
方がいいんじゃない?
293 :
デフォルトの名無しさん :04/09/15 07:37:54
>>291-292 えーと、windowsのbmpじゃなくてBGR233っていう形式のデータを
受け取ってjpeg画像として処理するようなことがやりたいのです。
で、bmpとかの画像を処理する基本みたいなことが
知りたくて何かいい本は無いかと思って質問させていただきました。
そんままズバリみたいな本があれば尚いいんですけど。
ちょっと自分でもよくわかってなくて変な質問になってごめんなさい
質問中の方に、チャチャいれてわるいけど、
>>291 mag って久しぶりに見た。まだ使われている? maki はマイナー?
ソースコードはあるけど、テスト用の絵がないので、実装止めているんだが、
絵がある URL が分かれば、試してみたい。(昔 nifty, pc-van にはあった
が、もう ID 持ってないんで)
MSDN には、jpeg を bmp に埋め込むと、そのまま読めそうな記述があるけど
みんなやっていないのかなあ。width, height 得るのに一旦解凍するんで、
2度手間ってことでしょうか。
>>294 BI_JPEGあたりは普通のスクリーンデバイスでは使えない、が結論だったはず。
あと、トップダウンDIBはメモリ上で扱う分にはほとんど問題ない。
ふつう bmp -> DIB -> jpeg だろ?
は? DDB=BMPというわけじゃねーだろ BMPはもっと広い意味を持った言葉だろが。
みなさんいろいろありがとう。
>>298 この手法は目から鱗でした。
もうメモリにあるんだからさらにバッファリングで読み必要ないですからね。
これを採用したいとおもいます。
>>295 ご教示感謝。
今朝すぐレス書いたら、書き込み拒絶されたので、時間稼ぎに試して見ました。
BI_JPEG 指定で、biSizeImage と bit data に元の jpeg データのを指定して
bmp file 作って、読ませたら、ペイントも IE もネスケもダメでしたね。
デジカメに付いていた ACDSee が入っている winXP 機で試したら、
.bmp file ダブルクリックで、これが起動して、表示されました。
IE から開いてもこれを起動して表示。ネスケは何も出ず。
手抜きの便乗質問ですみませんが、
>>298 のURLでの、減色機能ってのはどんな評価ですか。前に xPadie がありましたが、
あれは時間がかかるんで、そこそこの再現なら、つっこんで見たい。
302 :
デフォルトの名無しさん :04/09/16 00:18:32
jpegの仕様がしりたくてISOのサイトで検索したら、なんか値段がついてる・・・ 買わなきゃ見れねーのかよ・・知らなかった
質問させていただきます PhotoShop等に装備されている16bitカラーモードですが、これは演算を16ビットで行い 画面に表示するデータは8ビットに落とし込んでいるという解釈で宜しいでしょうか。
>>303 itu-81版はただで手に入るはずだが。。
309 :
デフォルトの名無しさん :04/09/18 09:10:34
原画に対してガウシアンブラーかけたものを用意して それと原画との差分をとれば輪郭がとれると思うのですが いかがなものでしょうか
>>311 >>309 のオサーンは、輪郭はすでに抽出できていると思われ。
枯れた画像処理の分野は充分に理解していると思われ。
安価なmpegエンコードライブラリを探しています。 キャプチャボードは、ビデオフォーマット(NTSC)などを取り込んで そのままmpegに出来るだけのライブラリでも キャプチャボード込みこみのライブラリでも良いです(もちろんハードエンコでも) どなたか、ご存知の方いらっしゃいませんか? OSはWindows、開発言語は、C(++)、VBで 価格はライブラリのみなら2万くらい(初期ライセンス10万まで) キャプチャボード込みなら5万くらいでお願いします
DirectShowじゃだめなのけ?
エッジ延長処理のアルゴリズムご存知のかたいらっしゃらないでしょうか? キズ等の検査で、2つの微分値を使用してエッジをつなげるものらしいのですが。 よろしく御願いします。
>>316 主機能ではないのでその部分に開発工数をあまり取られるわけには行かない
実情があります。こちらとしては、ひとつの関数で取り込み、変換、ファイル保存を
別スレッド(プロセス)で停止関数を発行するまで勝手に行ってくれる
と言う感じのライブラリがあればと考えてます
欲を言わせてもらえば、再生はMediaPlayer ActiveXのように 簡単に再生が行えるウインドウを貼り付けられるとうれしいです。 (というかmpeg2 decodeが入っていればmpegの再生は mediaplayerにやらせれば良いだけですね) 装置制御込みこみ開発3週間、見積もり100万ととんでもなく 安価な案件なのでなるべく工数をかけない方法が必要なんです(T_T)
>>320 はっきり言って???ですね
装置自体は医療系で使われるものなんですが
類似品がすでに出回っているので・・・
こちらの設定価格が競合機実売の70%らしいので
未購入層のシェア70%を見越していると説明されましたが・・
あわよくば数十から数百って所ですかね下手すると1台ってことも
一応、ソフトは全部こちらのライセンスになるそうなので
売れればまあまあの儲けが期待できますが
今までのパターンを考えると・・・・開発資金+小遣い程度だと思ってます。
初回ライセンス10万設定はその後もつかえそうならの身銭きりです
>>322 値段見て吹っ飛びました
エントリーモデルで100万ですか!!!
キャプチャボード+TV録画ソフトが実勢1万前後で売られている世の中なので
SDKも+3,4万程度と考えていましたが、なかなか甘かったみたいですね
カノー○ス社製のMVR-D4000ってのありましたが これも安く買って18万・・・・ちょっと泣きそうです
>>323 クボテックの KB580 はどうでしょ? SDK 付きで 14万・・・(使ったことないけど)。
>キャプチャボード+TV録画ソフトが実勢1万前後で売られている
すごく沢山出るんならそのくらいの値段なんですけどね。
327 :
デフォルトの名無しさん :04/09/22 15:31:02
キヤノンのDIGICみたいな絵にする処理方法を教えてください
っというか、mpeg-1(?)のCODEC(4ならいらない)さえ あればDirectShowでやっても数十ステップで済むと 思うけど・・・ キャプチャも固定化できるなら楽チンだと思う。
画像処理になるのかな? 画像の自由変形でスマートな方法って何?
皆様、有難う御座います。
>>325 ですが、やはり今回使うにしては値が張りすぎてしまいます
先ほど確認したところ100台という話は聞きましたが、
100台ごときでは大して値下げしてもらえそうも無いので交渉の
面倒くささから投げてます
>>326 その線が有力になってきています
クライアントからはその分の値段交渉に応じてくれそうな気配が・・・・
>>328 NTSCの入力同期とか考えなくてもDirectShowがうけもってくれるんですか?
そこら辺の制御が結構面倒くさいかなぁと思ってました。
最終的にはcodecはmpeg2なんですが(多分DVDに焼く為)
mpeg4で試してみますDirectShowは使ったことが無いのでちょっと調べてみます
>>329 > 画像の自由変形でスマートな方法って何?
自由変形って例えば?
>>331 画像のエッジを矩形として、
その矩形を台形にしてみたり、自由に変更するカンジかな。
フォトショップとかの編集機能みたいな。。
>>333 > その矩形を台形にしてみたり、自由に変更するカンジかな。
なにをもってスマートというかによるが、アフィン変換とか射影変換とかかね。
ま、直線->直線にかぎらず、欲しい座標変換と逆変換を式で書ければよい。
あとは、目的の座標でラスタスキャンして、元の画像の座標に逆変換して、
目的の画素を適当に内挿で作り出すと。
>>333 変換前後のエッジ頂点がすでに判明してるならただのモーフィングですね
普通に座標変換してピクセル埋めるだけでいいでしょう
変換座標の小数点以下をどう扱うかは単純な拡大縮小と同じことで
線形でも三次でも好きな方法で補間をどうぞ
336 :
デフォルトの名無しさん :04/09/22 20:23:03
smartというと苦痛、利口、厳しく、小粋という意味なわけだが、 この手の問題でsmartな方法となると、 FFTを使ってしまうとか派手な演出が必要だ
>>334 >>335 さん
レスありがとう。
最終的に3次元画像へ応用したいのですが、プログラムはかじってても
画像処理はなかなか扱わない分野の者ですので聞いた次第です。
>>334 いい感じですね。ちょいと調べてやってみます。
これだと3次元画像への応用もききそうだ。
>>335 実際、線形補間でやってみたんですけど
なかなか極端な矩形(1点が遥か遠方にある場合とか)のモアレが消せなくて。
細分化していくのもいいけど、処理時間が長くなるだけかなーっとやめました。
>>337 線形補間で処理時間が長くなるからやめたってことは
最近傍で補間したの?
線形補間にするとモアレが出て
最近傍補間にするとそれが綺麗になるというのは考えられないのだが。
サンプルをどこかにUPすれば、なんらかの結論が出るかもしれんけど
>>317 それって、松下電工の画像処理装置のやつだよね、オレも中身はわかんないけど、
抽出したとぎれとぎれのブロブに対して、ブロブ同士が近接していたら、
ひとつのブロッブ(クラスタ)として扱うみたいな2重のブロブ解析してるんじゃないの?
カタログの画像を見たとき、一瞬 hough 変換かなと思ったけど、
微妙に違う感じをうけた。
微分は、ブロブを作成するための手段であって、
相互の微分値を評価につかっている感じはしないな。
あ、ブロブになる寸前の微分値が似通っていたら、クラスタとして評価するのかも。
つまり、ブロブ同士が接近していても、微分値が違っていたらクラスタとして認識しないとかね。
もしかしたら、処理内容を公開してるかもね、
特許庁のデータベースのぞいてみたら?"松下電工"でひっかかるかもよ。
もし通ってたらラボ用途の実証実験以外には使ったら危ないよ。
>>338 すいません、というか、補間なんてしてなかったです。
すさまじく勘違いしてごめんなさい。
逆変換かけた座標を元に埋めた画像を線形補間ですね。
341は何も分かってない気がする
>>342 自分もそう思うw
いずれにせよ、やらなくちゃいけないので、勉強します。
ちょっと悔しかったし。励みになります。ありがとう。
>>327 それはネタですか、マジですか、もうちょっと具体的に。
赤系や緑系の色をド派手にしたいの?
>>340 ありがとうございます。
松下ですか、少し自分なりに調べてみます。
すこし、聞いた感じでは、2重のプロブの解析って感じではなく、2つの微分値をしようして、
高い微分値にたいして、プロブ解析をおこない、その端に周辺画素の微分の方向が低いほうの微分値の方向と一致
していればつなげるというような感じでした。
方向とか、つなげる候補をどうきめてるのかなぁって感じでした。
変形四角形の座標変換は三角形に分ければいいとおもう
347 :
デフォルトの名無しさん :04/09/29 21:33:13
2次元FFTしたのですが、パワースペクトル画像の作り方がわかりません。 スペクトル画像のX軸とY軸はどのように算出すれば、いいのでしょうか?
FFT結果の周波数分解能がわからんって意味?
>>347 「2次元FFTしたのですが、」と「2次元FFTしたいのですが、」
で、だいぶ質問の趣旨が違っちゃうぞ、タイプミスじゃないよね。
すでにFFTが完了しているのだったら、dBでプロットしてみたら。
>>347 おーい、もういちど出てこないと宿題かたづかねぇぞ。
それとも教官に聞きにいったか?
2chより教官か (´・ω・`)
ステレオ視の最近のレビュー論文誰か知りませんか? 対応点問題はどういう展開を見せているのやら
>>353 あ、俺も読みたい。探してみるけど、知ってる人がいたら教えて。
国立科学博物館の会報にそれらしいのがのってた気がする。 結構前だけど。
356 :
デフォルトの名無しさん :04/10/08 23:11:33
BMPファイルの特定部分を切り抜くプログラムを作りたいのですが どうやれば良いのでしょう? たとえば解像度1000×1000の画像で真ん中の800×800の部分だけを切り抜く、 つまり座標(100,100)-(100,900)-(900,900)-(900,100)の4点で囲まれる部分を 切り抜いて保存したいのです。 BMPは座標と色階調のデータ列だと聞いたのですが、 そうだとすると、上記の座標で囲まれた部分の色階調データだけ残せば良いと 思えるのですが。 BMPファイルを開いて、任意の座標のデータを取捨選択できる様な 言語はありませうか? VB.NETでもいけますか?
358 :
デフォルトの名無しさん :04/10/08 23:13:43
↑だと801×801になっちゃいますか・・・
359 :
デフォルトの名無しさん :04/10/08 23:14:49
>>357 即レス、ありがとうございます。
VB.NETだと、どんなソースコードになるんでしょう?
要の部分を教えてください。
WindowsでBMPのクリップぐらいなら、 メモリ上でピクセルイメージを直接扱わなくても APIをつかって高度に扱えるよ。 詳しくはMSDNライブラリで検索するかWindows系のスレへ
APIを使いたくなければ、BMPのフォーマットを調べろ。
>>353 新技術コミュニケーションズの、「コンピュータビジョン」がいい。
対応点問題を回避するために、
左右画像の各座標における空間周波数の位相差から、
視差を求めようとする研究を見かけたことがある。
詳しく覚えてなくてスマソ
16bit 深度の TIFF 画像の読み書きできるライブラリを探しています。 libtiff だと 8bit に丸められちゃうみたいでダメなんです。 何か良いのを知りませんか?
>>363 それなら持ってるけど、レビューというより技術紹介みたいな感じじゃなかったっけ
>364 libtiffでも16bit読み書きできるが?
>366 おぉ〜!マジですか? よろしければどういう関数を呼べばいいのか教えてください。 TIFFReadRGBAImage 関数だと RGBα各チャンネルが 8bit × 4 の uint32 の配列に入ってしまいます。
368 :
デフォルトの名無しさん :04/10/09 22:21:08
画像処理関係の過去ログを参照できるメーリングリストってないですか?
>367 TIFFGetFieldで画像情報を得る TIFFReadScanlineで1スキャンライン分読み込む Tilingじゃなければ読める TIFFGetFieldでなんの情報が必要かは仕様書を読む TIFFTAG_???でヘッダに定義されてるからgrep TIFFReadScanlineはぐぐれば1780件引っかかったから適当なサンプルもあるはず
>367 書き忘れ TIFFは行儀の良いファイルだけではないので気をつけること TIFF TAGが必ずしも規定通りになっていない場合もある(その場合は TIFFReadRGBAImageでも読めないが) ある程度補完すれば読み込むことは可能になる
371 :
デフォルトの名無しさん :04/10/09 23:10:06
>369-370 サンクスです。やってみます!
沢山の小さな三角形で表現された3次元物体があります。 この物体の外向き法線ベクトルを計算して求めたいのですが、 計算前にはどちらが外向きか分かりません。 プログラムを使って計算するつもりですが、 データを読み込んだときには面の裏表が分からない状態です。 間違いなく決めるにはどのようにすれば良いでしょうか。
重心を求めて外積ベクトルがそちら向きかどうかで表裏を 判断するってのはどうだ?
>>374 早速有難う御座います。
とてもいいヒントになりましたが、もう一つ尋ねさせて下さい。
単純な形状でしたらかなり上手くいきそうな気がします。
ただし、三角形表面のある点から重心へ向かうベクトルと、
三角形の法線ベクトルが直行しているときは
表裏が区別出来なくなりそうですが、大丈夫でしょうか。
完全に閉じていれば 外向に法線を伸ばすと偶数回交差 内向に法線を伸ばすと奇数回交差 するんじゃない? 誤差ってポリとポリの間をすり抜けたりするのかな? その場合は複数サンプルすればOKでしょうか。
>>376 回答有難う御座います。仰る意味がよく分かりました。
374さんの回答をヒントに、着目する面の周囲の面の
法線ベクトルと重心の関係と、着目する面とその周囲の面の
内積値を調べて、向きに間違いが無いように調べる
プログラムを作っていたのですが、376にあるチェック方法の方が
シンプルですね。早速作ってみます。
ポリゴン数が多い場合は、全ての面に対して376の方法をやってたら かなり時間かかるぞ。プログラムは数行で済むけどさ。 そこそこのポリゴン数なら、先に同じ辺を共有する面を列挙しておいて、 1つの面だけ法線を求めてから隣接する面の法線を揃えていくのがいいかと。
379 :
デフォルトの名無しさん :04/10/11 01:59:01
(;´Д`)
>>379 おまえも他分野にいったら「低脳野郎」と言われる可能性はいくらでもあるんだよ。
ドーナツ状の場合はどうすんの?
24bit -> 8bitに減色する高速なアルゴリズムってどんなのがある? 最悪、888→232も考えてはいるけど流石に再現性が悪すぎるので…
>>383 ベクトル量子化
実際に組んだことがあるけど、結構いける。
あ、高速なアルゴリズムか。高度なと見間違えた。 ベクトル量子化は遅いっす。
>>383-385 減色といっても、
Nbitカラー -> Mbitカラーnパレット
Nbitカラー -> Mbitカラー
の二つで考えなくちゃならん。
NbitカラーをNbit、nパレットって表現するのであれば
>>384 の言うようにVQが最強。
高々3次元ベクトルの量子化なんでそんなに遅くないよ。
>>383 が言ってる888->232だと目的とする画像によって方法はいくつかあるけど、自然画だと誤差拡散、ベクターグラフィックみたいな奴は良くしらんけどなんかあるっぽい。
OpenCV使ってる人いますか? カメラからのキャプチャする方法がcvcam.libとhighgui.libの二つで提供されていますが,どちらか一方はobsoleteなんですかね?
>>384-386 レスthx
>ベクトル量子化
ググったけど俺に理解できる資料が見つからんかった…il||li ○| ̄|_
よかったら実例の載っているわかりやすいページがあったら教えて…
> Nbitカラー -> Mbitカラーnパレット
> Nbitカラー -> Mbitカラー
24bitカラー→8bitカラー 256色パレット(565)
です。
>>388 Cマガ2000年7月号
一瞬で処理したいなら15〜16bit精度ヒストグラムでの再帰分割+ディザかな?
今のCPUパワーだと24bit精度ヒストグラムのLBGクラスタリングでも一瞬とは
いかないが実用的な速度で1024×1024→8bitパレットが可能
>>383 よく使われる方法だとメディアンカット。
もっと速くしたいなら平均値でカットかな。
メディアンカットを簡単に説明すると、色空間を豆腐だと思ってくれ。
(RGBが豆腐のXYZ軸)
この豆腐を左手にもった状態で、まずRの軸の中央値のあたりに包丁を
入れて豆腐を2つに切る。次はGの軸の中央値のあたりを狙って包丁で
切る。さらにBの中央値で切る。
ここまでで豆腐は8個のサイコロ状になっている。ようするに8色に原色
する準備ができたってわけだ。
これを必要な色数に近くなるまで中央値でカットし続ける。
最後に細かくなった豆腐は麻婆豆腐にして食べると美味い。
原色処理は厳密に言えば、代表色を求める処理と、マッピング処理の 2行程に分かれる。 メディアンカットってのは前者の代表色を求める処理。 ディザとかは後者の処理で、色数が極端に少なくなる場合はこっちも 頑張らないと綺麗に減色はできない。 ちなみに説明を簡単にするためにR,G,Bの順に豆腐を切るとか言ったけど 実際には体積が大きいかあるいは含まれる色数が多い豆腐を選んで、 その中の一番長い軸を切っていく感じ。 また、1色も含まれない豆腐の塊はさっさと捨てる。
ごめん、1色も含まれないってのはメディアンカットでは起こらない。 これは忘れてくれ。別の手法だ。
ついでにいうと豆腐の説明も変だな。すまん、逝ってくる。
>>378 仰る通り、ポリゴン数が少ない場合は大丈夫だったんですが、
自分が期待した形状では処理時間が掛かりすぎています。
ポリゴン数が約10万点で、三角形要素は22万個程度なのですが。。
どうしよう。。という感じです。
>>382 交差する回数を数えることで、トーラス形状は大丈夫でした。
実装する前にその数にあれやったらヤバいことは分かるだろうよw
>>389-394 レスthx
とりあえず理解できるところから実装して実験してみようと思います。
3次元空間を上手く扱うアルゴリズムってどうしたらいいのかな…
>>394 なかなかの速度。再現も可。ソースが欲しい位。
で、細かいことだが、動いている最中は、砂時計位出るといい。
399 :
デフォルトの名無しさん :04/10/14 18:50:13
細線化(Thinning)で有名な"Hilditch"さんって、 あえて日本語で読むならどう発音するの? 「ヒルディッヒ」? 「ハイルディッヒ」?? 「ヒリダッチョ」???
ヒルディッチじゃない?
ヒタチ
MAXサイズのPNGを作ったら面白いと思って色々やってみました。 大抵のソフトはメモリ上に配列を置くみたいなのでデカイ画像を新規作成するだけで落ちます。 IDATのフォーマットが難解で意味が判らない。 とりあえず、BMPから無圧縮PNGを作るソフトを探したので試してみましたが64KB以下のものしか作れなかった。 ImageData→フィルター→zlibで圧縮→CRCとかサイズとかチャンクネームを付ける→IHDRとIENDくっ付ければOK 65535x65535サイズのImageDataをフィルタ処理したデータの塊を用意・・・ とすると12ギガくらいのサイズになるので駄目・・・ 65535x1の大きさのラインを縦に65535回処理するような感じで圧縮すれば出来そうかと思ったけど、圧縮するのに配列に展開しないでやる方法が判らん。 配列の変わりにデータを返す関数みたいなのを作ればいいのだろうか?
bmp2pngはどうよ?
404 :
デフォルトの名無しさん :04/10/15 16:19:05
ビットマップ画像を色変換処理して表示したら ブロックひずみが出てしまいました。 どうしたら出ないようにできますか? 環境はVC#です。 cColor = bBitmap.GetPixel(i, j);// ピクセルの色の取得 Red = cColor.R;// Red値の設定 Green = cColor.G; // Green値の設定 Blue = cColor.B;// Blue値の設定 CCb = 20 * (-0.169 * Red - 0.331 * Green + 0.5 * Blue); Cb = (int)CCb; // 負の場合 if (Cb < 0) Cb = 0; // 0に変換 // 255より大きい場合 if (Cb > 255) Cb = 255;// 255に変換 cSetColor = Color.FromArgb(Cb, Cb, Cb);// 色の設定 bBitmap.SetPixel(i, j, cSetColor);
CCb = (-0.169 * Red - 0.331 * Green + 0.5 * Blue)+127.0; では?
408 :
デフォルトの名無しさん :04/10/15 23:26:12
ちょっと質問です。 最近画像処理の勉強を始めまして、 プログラミングの勉強もかねて新しい言語を覚えようと思っているのですが、 みなさんのオススメとかってありますか? 今出来るのはC言語だけです(´・ω・`)
Cが出来るんなら新たな言語覚えるのより 画像処理アルゴリズムの知識を増やすのに時間使え
>408 >今出来るのはC言語だけです08 どの程度できるのかわからんが、画像処理関連でとりあえず「あえて」他の言語を覚える 必要ないんじゃない? 画像処理関連のオープンソースものはCとかC++いろいろあるし 問題は「どの程度か」 やってくうちに「今できるのは」と言ってしまったことに赤面すること間違いなし
>>409-410 確かに言語云々よりも画像処理そのものの勉強が先ですね(´-`;)
私もCでやろうと思ったのですが、C以外の言語も覚えてと言われたので
それなら画像処理の勉強を新しい言語でやってしまおうという魂胆でした。
C/C++以外で画像処理が出来る汎用言語というと、Delphiしかないぞ。 VB,C#,Javaは画像処理に向いていない。
>>412 アセンブラが抜けてるぞw
カリカリにチューンすれば最速だ(マテ
ガリガリにアセンブラで書いた俺のソース、 Cでちょちょいと書いたアセンブルリストに負けて以来、 Cが吐いた物を手直しする形をとった。 今は手直しもしない。
インラインアセンブラで十分。
>>414 プロファイルする前にアセンブラ化しちゃだめだよ〜。時間の無駄だよ〜。
>>412 C#が画像処理に向いていないと言う理由は?
Javaが向いていないと言うには同意するけど
>>417 C#に詳しくないからはずしてるかもしれなけど(私は412ではないです)、
中間コードを生成することと、メモリを直接さわれないこと、とかじゃないかな。
画像の画素数が増えてきているから、C以外の言語は現実的じゃない気がします。
研究レベルならなんでもいいけど。
ガリガリ君食べたくなってきた
>>418 ダウト
C#でもポイントを使って、メモリを直接操作できる。
一旦中間コードに落ちるけど、最終的には実行時のCPUに
合わせたネイティブコードにコンパイルされて走る。
×ポイント ○ポインタ
画像処理とは低レベルな処理である。
423 :
デフォルトの名無しさん :04/10/16 19:45:07
pictureBox1.ClientSize.Width pictureBox1.ClientSize.Height のWidth,Heightって、どう読むんですか? 辞書で発音記号見ても、発音記号の定義がわからんので、 まったく意味なし。
Text To Speechにでも読ませろ
画像処理とは低級な処理である。
>>423 正確に書くのは無理だが
width うぃどぅす
height はいと
リア厨じゃないよね
width うぃどてぃーえいち height へいじーえいちてぃー
>>427 俺頭ん中はそれだ
ローマ字教育の弊害だな多分
小卒?
今まで「わいづ」って読んでた。orz >width 辞書見て確認したけど、確かに発音記号見ても簡単には発音できないな。 widθ,witθ
wiの発音なんて「うい」でいいじゃんとか思うんだが 人前では無知と思われたくないんで「うぃ」と読んでしまう小市民 orz
「幅」、「高さ」と読んでいる
僕423、リア厨じゃないけど、
私が中学のときは、発音記号について、突っ込んだ授業はなかったです。
あんなの気にして、英語を勉強してる人いるのかな?
>>431 アルクのページは、変数名とか関数名をつけるときに、重宝してるけど、
WAVとかMP3で、発音してくれる機能はありましたっけ?
ま、そんなこんなで、みなさんどうもありがとう。
>>435 俺が中学のときはちゃんと習ったぞ
ゆとり教育で発音記号も習わなくなったか?
>>435 あー、そういやgooはwav落とせるんだったな。
alc出したのはカタカナで発音書いてるから話題的にこれかなと思って。
台形補正ができるフリーの画像処理ソフトってないですか? 初心者なもので、ご存知の方、教えて下さい。
photoshop csは30000ピクセル以上の大きさの画像はTiffでしか出力できなくて、しかも他のSOFTと互換性が無いという。 ふざけた仕様だな
paint shop proは作成サイズが0-32768の制限がある これで金を取ろうと思うんだから ふざけている
>>438 > 台形補正ができるフリーの画像処理ソフトってないですか?
自分で作れ。ここはそういうスレ。
>>438 デジカメ板のレタッチのスレへ行けば、絵をきれいにしてくれる。
そういう問題ではないだろうが。1枚、2枚ならそれでもいいんでは。
>>441 あたしゃ、四辺が直線のは作ったが、左右の線が樽型ってのをどうも
うまく矯正できない。マウスで何点か指定して滑らかに線で結んで
補間計算させるしかないんですかねえ。
>>439 おれがPhotoshopがクソだと思うのは、
WindowsBMPを作成したら、ファイル末尾に余計な2バイトをつけることだ。
BMFHとBMIHを適切に処理すれば関係のないことだが、なんだかウザい。
TIFFはクソ。
445 :
デフォルトの名無しさん :04/10/20 04:00:56
MPEGファイルを使って動画像処理をやりたいのですが、 どこから始めたらいいか見当もつきません。 ppmとかの静止画ならCで扱ったことがあるのですが。。。 まずMPEGを読み込つつ処理をするにはどうしたらよいでしょうか? リアルタイムでやる必要はないのですが。
1)そういうソフトを買ってくる 2)一度変換かけて無圧縮にして(ry
virtualdubとかのソースを見るとかね
HALCONで画像包絡線って求めれませんか? よろしくお願いいたします。
>>445 ffmpegが利用できる。
WindowsならDirectShow使えばむちゃ簡単。
1画素2ByteのRAWデータを表示するWindowsアプリをVisual C++で作りたいんですが、 参考になるソースやHPを知っている方がいたら教えて頂けないでしょうか? RAWデータを表示した後、いろいろ処理したいんですが、はじめの表示のところでつまずいてしまいました。
>>452 レスどうもです。
配列に取り込むところまでは、簡単にできたんだが、その後、ビューへの表示の仕方がわかりません。
表示さえできれば、その後、範マウスで囲を指定したりして、平均値とか出したりするアプリを作りたいんだが…。
表示時後はなんとかできそうなんだが、いかんせん表示の仕方がわからんため、先に進めません。
知ってたら教えてください。
>>453 誤)その後、範マウスで囲を指定
訂)その後、マウスで範囲を指定
すまんです。
>>453 入門書や入門サイトまわってきて下さい。マジで。
>>453 それは画像処理じゃなくてGUIプログラミング入門だ
>>453 他の人に怒られそうだが、困ったときって目の前が真っ暗になるんですよね。
で、ちょっと説明しておくと、そのデータを DIB 形式に編集して、
>>458 の
関数で画面へ送るといいと思います。WM_PAINT とか BeginPaint() とか、
HDC とか、お分かりでなければ、
>>455 の方の言われる通りですね。
「猫でも分かる...」へ行って下さい。サンプルもあります。ちと古いけど。
こんねこの体験版 アーカイブ nao 画像 eri naoファイルをバイナリで開いて先頭のテキストでググルとSDKとか置いてあるサイトが見つかったよ・・・ 製品版では暗号化するだろうけど・・・
>>458 ,459
レスどうもです。 あと、場違いな質問してすみませんでした。
DIB形式に変換して表示するのですか。なるほど。
DIB形式でググったら、いろいろ出てきたんで、なんとかなりそうです。
本当にありがとうございました。
きちのとお礼を言うのは見ててきもちいいな 頑張ってくださいね
age
フォトショップの塗りつぶしツールのようなプログラムを 作製したいのですが、その要領が分かりません。 あるピクセルから始めて、その周りを1ピクセルずつ 広げていくイメージでは出来ないかな?とは思いましたが、 それだけでは連続かどうか区別出来ませんでした。 どなたかお知恵を拝借させて下さい。
SeedFillで検索するといいよ
8bit時代からの懐かしい課題だな。
>>465 さっそくの回答有難う御座います。
検索してソースも手に入れました!
日本語の解説サイトがないので、
ソースを見ながらしっかり勉強します。
質問します。
http://iphome.hhi.de/suehring/tml/ ここのH.264エンコーダ(jm90.zip)をVS.netにてコンパイルして試そうと思うのですが
ソース元がraw 4:2:0 のyuv じゃないとだめみたいなのですが、
このファイルはどのように準備すればよいでしょうか?
無圧縮AVIを用意してRGB→YUV4:2:0に自力変換しないといけないでしょうか?
どうか宜しくお願いします。
スレ違いでしたら誘導願います。
>>468 サイトの紹介有難う御座います!
とても詳しく書かれていたので勉強になりました。
Seedfillのことはよく分かりました。
>>471 ありがとうございます。
そこにH.264のスレも発見しました。
MainConcept以外にもCODEC色々だしてるみたいですね、それでは移動します。
ありがとうございました。
473 :
デフォルトの名無しさん :04/10/31 17:24:07
フィルタの接続はicapturegraphbuilder2にまかせっきりでいいのかな? まだ、プレビュー表示とサンプルグラバーぐらいしか使ってないけど、もっと複雑なことする場合は自分でピンの接続やるべきなのかな? みんなはどう?
475 :
デフォルトの名無しさん :04/10/31 17:47:17
>>430 便乗質問。wavelet に出てくる
Daubechy の読み方はなんでしょうか。
ドベキーですかねえ。人名も結構難しい。
大津とか日本人はいいけど。
477 :
475 :04/10/31 18:05:03
スレ移動
皺の両端を指定するとそれをはさむ明るい部分の色との加重平均で皺を取る アプリを作って小さい写真なら見られるようにはなったのですが、平板な感 じが残って、不満です。 肌の感触とはなにかというのは、定義とか説明とかあるのでしょうか。テレ ビで見るCGの人形も概してツルツルでリアルではありませんよね。まだそこ まで行っていないのでしょうか。(皺取りとかしみ抜きでぐぐっては見たと ころです)
叶姉妹はフルCGらしいぞ
480 :
デフォルトの名無しさん :04/11/03 09:37:09
横浜で開催されたFPDInternational展に行って来たのですが、
そこで展示されていたテクノス社の5000Kニューロ視覚センサって、
実際のところどういう処理をしてるんだと思いますか?
私は画像処理屋なのですが、「...高層ビルの何階から見下ろした...」、
のような例えをされると、余計にわからなくなりました。
高速に画素の濃度値を積算して、その結果を数学的に補間し、8bitから12〜16bit相当にして、
高速に濃度に応じた複数の可変しきい値を適用するハードを作りましたということなのかな?
ttp://www.technos-group.com/TechnologySupport/index.htm
>>480 そことは何回か話したけど、秘密保持契約結ばないと中身は教えないと言われました。
話しを聞いている限り、「同じ画像を複数の画像処理ボードに送って別々の計算をさせ、
結果がたくさん出るから、そこから必要そうなものを選んで結果として出力する」
というイメージだった。あくまでも、俺の想像なので信じないように。
482 :
デフォルトの名無しさん :04/11/03 21:19:03
なんとなく waveletをハードでやってるだけのようにも思えるが
CCDから来るデータがデジタルなのに視神経の真似出来んの?
484 :
デフォルトの名無しさん :04/11/03 21:43:31
自動車には足がないのに移動できるだろ
485 :
デフォルトの名無しさん :04/11/03 22:58:32
>>483 ごめん、悪いけどデジタルの定義って教えてくれない?
コンピュータってさアナログじゃない?
なのにデジタルなんだろって疑問があるんだよねー。
オシロで見てるとほら波状ってるわけじゃない?
ぜんぜん0と1じゃないんだよねー。
波の、山は0、谷は1とかに決めてるだけではないの。 山と谷がぐずぐずになると信号にならないからエラーになるだけ。
ヒトの神経も興奮状態をH、鎮静状態をLとできるじゃないか。 ディジタルなんだよ。
ディジタルICはトランジスタで作られている。 回路的には飽和か非飽和かの違いでしかない。
480です。 481説を、うのみにするわけじゃないですが、仮にそうだとしたら、 素直に481のような説明にしてくれたほうが納得できますね。 処理装置だけでなく、照明の工夫なども必要でありましょうが、 油膜汚れのような薄ーーーーい製品欠陥を、 それなりタクトタイムで抽出できるというのはあっぱれです。 工場現場にいる検査技術者とか品質責任者って、 ああいう、たとえ話のような説明のほうが納得できるのかな?
あ〜なるほど!!!
493 :
デフォルトの名無しさん :04/11/04 07:33:24
受けはいいだろ 知らないから
>>491 あ、やっぱり、納得できるんだ...................
>>493 たしかに、興味のあることは不良品を工場の外に流出させないことであって、
専門用語を並べた画像処理アルゴリズムの説明なんか、どうでもいいことなのかもしれない。
(でもちょっとこわいね。 ___ w)
アルゴリズムの説明よりは結果というか実績の方が大事 不良品検出率・誤検出率がちゃんと示されていればいいんじゃないかな
>>492 お教え頂き有難うございます。
ノイズを入れればとは思ったのですが、さてどれ位かと思っていたところでした。
ご紹介のページも参考になりました。この会社のフィルタも随分買いましたが、
フィルタとは思いつきませんでした。切り口の参考になりました。
>480 ざっと見てみたけど、ディザリングの逆をやって濃度分解能をあげてるみたいですね ボードの方で8bit→16bit(弱、28461階調) 確かに検査と言うことを考えると濃度方向の分解能は重要ですから ビルの高さうんぬんは、画素方向の分解能と濃度方向の分解能の比喩ですね 1階だと画素分解能は高いけど隣接画素の積分がないので濃度方向の分解能が低い 高層階だと画素方向の分解能は低いけど、隣接画素の積分で濃度方向の分解能が高い 人間の目だと隣接画素の積分レベルは同時には1レベル(1つの階から見る)だが、複数レベル のものを用いて評価できるのがメリット ボードの枚数(MAX4枚)がそれに相当?
>>480 漏れも見てみた。
こういったシステムでは人間の視覚と同様に、入力画像のコントラストに応じてアダプティブに欠陥認識に
用いる閾値等を変化させるわけだけれども、このとき解像度が固定されていると、対象物の細かな欠陥、
大きな欠陥の両方を検出できません。でもこのシステムでは、多くの解像度の画像を同時に得て同時に
処理することができますよ、
というようなことが書かれています。ビルの絵の説明は、例えばセブンスターのパッケージ(小さな星型
が多数印字されている)の欠陥検出を行うとして、
・近くから高解像度で調べると、星型部分の形状ゆがみ等が検出できるが、大きいが色差の少ない色むらは見逃す
・少し遠くから中解像度で調べると、星型の柄は潰れてしまうが、大きいが色差の少ない色むらは検出可能
・多数のパッケージが見えるくらい遠くから低解像度で調べると、個々のパッケージの欠陥はわからないが
後に印字されたパッケージの色が薄い、などの欠陥が検出できる
というようなこと。
おもしろいよな画像処理
QRコード読み取りとかも画像処理だよな あれって、ノイズ除去・2値化・回転縮小・パターン認識辺りでやってるのかな
ちょうど今月のインターフェースにQRコードの解説があった気がするが。
2カ月前のCマガにもあったぞ。 QRコードって広告とかのデザインを台無しにするから嫌い。 どんなにクールなデザインなポスターでも、隅のほうにアレがあるだけでダメ。
プレゼンスライド上に赤外線でQRコードを表示するっていうのをやっている人がいたな。 ヒトの目には見えないがカメラには映る。
>>505 へえ。デジカメだとほとんどに赤外線カットフィルタが入っているんだと思ってた。
スゲェ、携帯のカメラでもちゃんと光ってるのが見える。
太陽光線反射など、多少のカットはできるが、強い赤外線は弾けない
>506-508 これでリモコンの動作確認できる #赤外が生きてるかどうかぐらいね でも安いCMOSのだと感度が低くてかなり近づけなくちゃだめ
なんてこった。スゴイ勉強になるスレだ。 QRコードとか赤外線にモリモリ興味が湧くぞ
>>506 公になっている研究なんだけど、お前、全然調べていないだろ
詳細をこんなところで書けるわけないのに、ツッコミ入れるなら少しは調べてからにしろよ
■■■■■■■□■■□■□□■■■■■■■ ■□□□□□■□□■□□■□■□□□□□■ ■□■■■□■□□■□■■□■□■■■□■ ■□■■■□■□■■□■□□■□■■■□■ ■□■■■□■□■□□■■□■□■■■□■ ■□□□□□■□■■□□■□■□□□□□■ ■■■■■■■□■□■□■□■■■■■■■ □□□□□□□□■■■□□□□□□□□□□ ■□□□■□■■■■■□■■■■■■□□■ ■□■□■■□■■■□□■■■□□□□■■ □□■■□■■■□■□□■■□□□■■■■ □■■□■□□■■■■■■□□■□■■□■ ■□■□■■■■□□□■□□■■■□■■■ □□□□□□□□■□□■■□□□□□■■■ ■■■■■■■□■□□■□□■■■■■□■ ■□□□□□■□□■□□□■■□□□■□■ ■□■■■□■□■■□□■■■□■□□□■ ■□■■■□■□□■□□■■■■□□□■■ ■□■■■□■□□■□□■■□□□□□□□ ■□□□□□■□□□■■■□□■□■■□□ ■■■■■■■□■■□■□□■□□□■□■
インタフェースはRQコードの作り方の方っぽかったね。 会社の図書館でパラパラっとめくって見ただけだけど。
QとRが逆さなのは脳内補完してください。
>>512 別にツッコんだつもりはなくて、「へぇ〜知らなかった〜そんなことできるんだ〜」って感動しただけのつもりなのに……
>>512 のおひとは、ちょっとXXXなので,YYYして,ZZZしておきましょう.
518 :
デフォルトの名無しさん :04/11/09 22:24:20
スレ違いだったら申し訳ありません. 実空間での輝度値の強度分布が,周波数空間では周波数とコントラストに置き換 わるってのがよく分からない(数学的に)のですが,ご存じの方がいましたらお教えくださいm(_ _m),
コントラストってのがよくわからんが、フーリエ変換のことをききたいの?
>>519 実空間での強度分布と周波数空間での周波数とコントラストの関係について
です.
フーリエ変換ではありません.言葉足らずで申し訳ありませんでした...m(_ _m)
それがフーリエ変換だということを分かってないから 「実空間での輝度値の強度分布が,周波数空間では周波数とコントラストに 置き換わるってのがよく分からない(数学的に)のですが,」 という発言が出てくると思われ
そうだね。
>>518 はフーリエ変換を理解してないんだよ。
とりあえずフーリエ変換を理解すればわかる(というか、フーリエ変換そのまま)。
もしフーリエ変換を理解した上で、「違うことを聞きたいんだ」ということなら、
もうちょっと具体的によろしく。
画像を格納するクラスで理想的なものってなんでしょうか? メインの画像クラス(2次元の配列?)から継承させる形で ガウシアンピラミッドやフーリエ変換とか いろいろな表現方法も同時に扱いたいのですが。 カラーもグレーも動画も同時に扱えると最高です。
>>523 class Image
{
public:
virtual void Display( プラットフォーム固有のあれこれ ) = 0; // 描画可能なら描画
virtual void* Pixels(size_t& size) = 0; // データへの直アクセス。フォーマットはドキュメント化する。
};
>>523 画像と動画を扱えるものが、”理想的”なのかな…
画像はずーっと同じ映像の動画だと考えようか
例えば 次の操作を同じ継承クラスで計算してしまえると楽です 動画のある部分だけの色ヒストグラムを計算したい 静止画のある部分だけの色ヒストグラムを計算したい 動画の動きが大きいところだけ抜き出して色ヒストグラムを計算したい 無理でしょうか?
>>527 無理じゃないと思うよ。
頑張って作れ。
なんでImgeMagickが無いの
>>523 あなたの質問は、みんなから意見をつのって片付く問題ではありません。
そんなこと聞く前に、いろいろ画像処理のプログラムを記述しまくりなさい。
そこで、初めて、画像を扱うクラスの指針が見えてきます。
その前に C++ を勉強せぇ。
あ、それとな、これから画像でやっていこうと思うなら、 2次元配列などというシロートくさいことしちゃだめだ。
>>533 玄人はどうすればいいのでしょうー にゃんにゃん
データ構造厨としては、 画素の線形リストがスキャンライン スキャンラインの線形リストがフレーム フレームの線形リストが動画 ってのが思いつくぞ フレームが1個しかない動画は静止画だし、 画素が3次元ベクトルじゃなくてスカラーならグレースケール すべておっけぇだ
>>537 ほぅ、VIGRAとかいうのが気になるなぁ。
ちょいと遊んでみるか。
なんか、できそこないspamの件名みたいで、名前がやだな
WindowsやInternetExporlorで描写範囲外でスクロールしてると 表示される部分は、どうやって描写してるのでしょうか? 1.全て画像データとしてメモリーに保存していく 2.スクロールで表示させる時に、表示部分を画像を作る 3.スクロールさせる時にブロックとしてある程度の画像を 作成してメモリの退避させておく の3つが考えられたのですが IEを高速スクロールさせても、綺麗に流れながら描写してる 所をみると1のような気がしないのですが どうやったら綺麗なスクロールの描写が出来るか よろしくお願いします。
>>540 基本的には2
IEのスムーズスクロールなんぞの時は3
>>539 わはは。オレも一瞬バイアグラのばちもんかと・・・
お下品で、すまん。
>>533 x座標・y座標・RGBAの三次元配列ですか?
533だ。
>>543 それネタだよな。
BGR構造体や、BGRA構造体で1次元にきまってるだろ。
RGBなどというシロートくさいこといってくれるな。
546 :
デフォルトの名無しさん :04/11/13 01:44:48
>>546 ここで質問するということは、そういうプログラムを作りたいということだな?
だが、断る。
DTV板は犯罪者の巣窟だからきっと教えてもらえるよ(プゲラ
はじめまして。 画像を反転させるプログラムを作っているのですが、 コンパイルすると 「signed と unsigned の数値を比較しようとしました。」 とエラーが出るのですが、解決法がわかりません。 ご指導お願いします。
>>550 たったそれだけの情報だと、どこかで符号有り整数と符号無し整数の
比較演算をやってるっぽいね、としかいえない。
どの行でそのエラーが出てるかくらい書くべき。というか、それ以前に
言語は何使ってるの?開発環境は?
>>550 そもそも反転が色のことなのか座標のことなのかも分からないです。
とりあえず数値の比較を行ってる部分を全て見直してみてはどうでしょう。
例えば、こんな感じ?(意味の無いコードだが) BYTE red; int i; ・・・ for(i=0;i<256;i++) if(i==red) ・・・ で、i==redにエラーが出てるとか? 反転させるコードの部分と関係ない気がするんだけど…
>>550 無条件にキャストしろ、エラーは消える。
そしてえらい目にあってみろ、そこから何かを学び取れ。(笑)
すいません。モノクロ画像の色の反転のプログラムです。 C言語で環境はVisualC++です。 以下がソースの一部です。 void make_inverse_image(void) { int x,y; printf("反転画像を作成します。\n"); x_size2 = x_size1; y_size2 = y_size1; for ( y = 0; y < y_size2; y ++ ){ //この行にエラーが出る for ( x = 0; x < x_size2; x ++ ){ //この行にエラーが出る image_m2[y][x]=(unsigned char)(255 - image_m1[y][x]); } } }
x_size1などの型は何だよ。 本当に"エラー"なのかよ。 画像処理以前の問題じゃないのかよ。
警告だろ。 なんで誰もスレ違いと言わないのか不思議でならん。
ネタがないから玩具で遊んでるだけ
肌色認識のコードを組もうと思ったんですが、どのようにすれば良いですか? RGBtoHSVで彩度をキーにしようと思ったのですが、今ひとつ上手くいかないんですが… もっと良い方法はありますか?
>>555 あのぉ・・・ 画像処理とは関係ないC言語に関する一般的な質問だから、C言語の
初心者のスレで聞いたほうがいいと思うよ。まあ、今回だけサービスするけど。
そのリストではx と y が intすなわち符号付整数なのだということしか分からないけど、
この外で、x_size2 と y_size2 は、符号なしの整数として宣言されているんだろうね。
size_t とか書いていないかい?
符号つきの整数と符号なしの整数が混在している計算のとき、C言語の規格では、
まず符号なしに変換してから計算する。
大小の比較をする場合も同じ。(引き算の一種として処理するから)
このため、符号付整数の中味がマイナスの場合に、比較結果がおかしくなる。
たとえば、符号付き整数のマイナス1は、符号なし整数では、表現可能な最大値に
該当するから、符号付整数変数にマイナス1が入った状態で、符号なし整数と比較すると
どえらいことになる。
(論理的に考えれば、マイナス1と「符号なしの整数」を比較するなら、いつでも後者の
ほうが大きいはずだけど、コンパイラはまずマイナス1を符号なし整数の最大値に
変換して型をそろえてから比較するので、常に前者が大きいということになる。ためしに
int x = -1; unsigned int xx = 0; に対して、if (x < xx) を実行してごらん? 必ず偽になる。)
ということで、コンパイラは事務的に警告を出しているわけ。このプログラムに限って
いうなら、どうせ x も y もゼロから始まって増えるだけだから、問題はない。
警告メッセージが気持ち悪いなら、「変数の宣言を適切にする」か、計算部分で「適切に
キャストする」ということになるけど、どういうふうに修正するのが論理的に「適切」かは、
場合による。
とりあえず、オレならこのプログラムの int x,y; を unsigned int x,y; にすると思うな。
>>560 >とりあえず、オレならこのプログラムの int x,y; を unsigned int x,y; にすると思うな。
int x, y; を unsigned char x, y; にする・・・でしょ?
あ、スマン。よく見てなかった。 スルーしてくれ・・・
実は、九州東海大学の釘○研究室と大胆予想してみるテスト。
y ++ x ++ 離して書くのはやめとけ
565 :
デフォルトの名無しさん :04/11/15 12:32:41
ガウスぼかしのかけ方を教えてちょうだいな
ガウス関数を重みにして色を混ぜるだけだよ
567 :
デフォルトの名無しさん :04/11/15 13:44:22
>>559 いまひとつっぷりが分からない限り、誰も答えようがない罠。
>>559 素人がおこがましいが、HSV のことぐぐっていたとき、どっかの大學の学生が
やっていて、スライドまがいの形で発表しているのを見たことがある。
その続きでの質問なら、参考にはならないだろうが。
>>567 顔全体が抽出されずに、穴が空く感じです
(目や眉以外の部分…恐らく、顔に赤みが入っていて、指定範囲を外れてるんじゃ無いかと…)
後、手の部分で輪郭部以外(手のひら等)の抽出が出来ないとか…
パソコンの前で手を振ってるので、パソコンの画面が光源になってしまって、手に青みがかかってるのかな…
範囲をあまり広げると、ノイズが大きくなって、その後に手や顔の判別が出来なくなるんですよ
HSVのHで調べるより、高精度な方法があるかな、という所です…もしくは、組み合わせる、他の画像処理技術とか
>>568 肌色認識の論文は色々あるんですが、どれを参考にしたら良いやら…
そもそも、RGB→HSVの変換式からして、色々と違ってたり(取る範囲が違う以外に)
>>569 すいません、カメラにLEDが付いてて、それ塞いでみたらかなり改善しました……思ってたより強い光だったみたいで…
後は、カメラから離れて、照明の当たり具合と影さえ気をつければ、他の処理で誤魔化せるレベルのノイズで収まりそうです
>>555 だから2次元配列はヤメロっていってんだろ。
y---xの順になってるのは評価するがな。
2次元配列やめろ厨房が一人いてうざいです
>571 ポインタ配列使ってリニアな配列にアクセスしてるかもしれないじゃん 他のところ見る限りそんなことないかもしれないけど
574 :
デフォルトの名無しさん :04/11/15 21:47:34
>>570 色なんてRGB一つサチったらパア。
よほどいい環境じゃないと・・・
なんか563あたりに懐かしいものを見た気がするケド、きっと気のせい
>>574 研究室だと照明・背景物含めて良い環境なんですが、自宅は酷いんですよね…
今、蛍光灯が一つ切れてて、普段より2〜3割程暗い感じだし…
でも、家で使う用途で使えるようにしたいんで、それでもOKなようにしないとって感じです
577 :
デフォルトの名無しさん :04/11/15 23:30:42
>>576 カメラのオートアイリスやオートホワイトバランスを用いるといいかもね。
だから2次元ハァハァはヤメロっていってんだろ。
スクール水着画像とそれ以外の画像の分類を自動化しようとしているのだな?
>>577 カメラドライバがショボイので、そんなお洒落な機能は付いておりません…静止画処理じゃなく動画処理なんですよ
どうも、カメラ側で変な補正がかかってるらしく、元画面にかなりブロックノイズ(?)が…何の処理だろう…
普通のカラー画像だと明度変化が少ないようで、静止画キャプチャしなければそれ程気に成らないノイズですが、
彩度変化が大きいようで、肌色認識にはかなり邪魔なノイズです…
ブロックノイズは不可逆圧縮だから仕方ないと思う。 MPEGもMotionJPEGも人間の目に判別されやすい輝度成分はできるだけ残し、 色味成分を大きく圧縮するようになってる。 認識の前にノイズ除去の処理を通すというのは?
>>580 趣味でやってるなら良いけど、画像処理/認識で食っていくなら、
そもそも「肌色認識は可能」なのか検討した方が良い。
>>580 っていうか画像そのまま取れるカメラ買え
MPEG-4ってCGオブジェクトをシーン記述で圧縮する規定があるみたいだけど アニメDVDってマスターテープからエンコードしてるんすかね? 素人考えだけど、撮影(つーかレタスとかで絵を合成する段階か?)の時にシーン記述とかそういうのを直接MPEG-4にエンコしたら凄い小さいサイズにまとまりそうな気がすうrけど
>>580 人物認識は動画のほうが静止画より使えるアルゴリズムが多くてラクですよ。
ピクリとも動かない人の場合は別だけど。がんばってください。
>>581 やってみたら少し改善しました。
肌色認識の後のゴミ取りでノイズ除去はしてたんですけどね
(元画像が汚いから、かけるべきでした)
>>583 研究室で良いのを買ってくれるって話もありますが…とりあえず、そのままでも行ける範囲で頑張ってみます
>>582 検討というのは、研究という意味でしょうか。それとも、別の意味でしょうか
ネットで、肌色の色相分布を調べたデータがあったので、それを元に工夫をしていこうと思います
>>585 動画の利点といえば、差分情報などと組み合わせるとかですかね
(後、前に判別した点との位置関係で補正とか)
とりあえず、精度は微妙な感じですが出来そうなので、精度を上げる工夫を考えて見ます
>>587 動画だと、条件にもよりますが
・(固定カメラの場合)動いているものは人かもしれない
・人の体の上のほうは頭で、頭のうち明るい色の部分は顔である
とかそういうヒューリスティックなヒントを使えます。
これらは静止画処理の際にはとても得られない重要なヒントです。
589 :
デフォルトの名無しさん :04/11/16 20:53:16
>>588 差分が大きい部分(動いている部分)を人物(の可能性がある)情報として使うのは考えてましたが、
顔認識に明度を使うのは考えてませんでした
その辺りも含めて、実験してみたいと思います。
ありがとうございます。
近赤外線LED照明のON/OFFの差分で、環境に影響されずに顔画像だけを安定して 取得するというのがあったけど。カメラの前には近赤外線透過フィルターをつけておく。 岐阜大だったかな
>>591 顔を安定して取得したい場合に近赤を使う、てのは割とポピュラー。
走行中の運転手の顔部品を車載カメラの映像から抽出する研究を どっかの学会で聞いたことあるけど、どこだったか覚えてナス
595 :
デフォルトの名無しさん :04/11/17 22:08:32
>>595 「車載カメラ」だから、オービスではないと思うぞ。
>>592 環境光の影響を低減するために支配的な強度の照明を当てても
対象が眩しがらないように近赤使ってるってことですか?
街中にそういうのが沢山出てくると破綻しそう・・・
FFT後の画像を領域変換して,直流成分が中心にくるようにしました.(cで) んで,その変換処理を式にする必要があるのですが,自らの数学力のなさで, 式にすることができません(-_-;; どなたかご存じの方いらっしゃいましたらお教えください. スレちがいだったらすいません...
>>599 FFTは境界条件が周期的(周期境界条件)だから、x,y方向にN/2ずらすだけで
いいんでない?F(X,Y)=>F(X-N/2,Y-N/2)違ったっけ?
>>600 画像を4分割して左上と右下、右上と左下を差し替えるってやつじゃないの??(←それはわかってるか爆
しかし残念ながらワシもわからん。
そもそも数式はどっかから引っ張ってくるモンで,作る?モンじゃねー笑
大学の教科書とか論文とかで、Σとか f(u,v) とかを駆使して、
画像処理を表現してるやつを見ると、お疲れさま....と思うね。
それで一般化できたつもりなんだろうか、コード出すのが一番じゃねぇの?
おまえ、ちょっと教授にたてついてみろ、
「実際ここに動いているコードがありますっっ!」ってな、がんばれ。
>>599
>>602 なに言ってんの?
数式は万国共通の言葉なのに。
>>602 もう10年以上前だが、○郷の理学部の博士論文は、Cのソースをつければ、
アルゴリズムの説明は数式でごじゃごじゃ書く必要ないと聞いたが。
>>599 xn(画像)をXk(空間周波数)に変換するとして
DC成分が端の場合
N-1 kn
Xk = xn ・ W
n=0
DC成分が中央だと
N/2-1 kn
Xk = xn ・ W
n=-N/2
と表現できる。定義域が違うだけで計算式は同じ。
なお、
(-j2π)
W = e
ただし脳内DFT(変換)だから間違ってたらスマソ。
SPツブレトル。これでどうだぁ。 N/2-1 kn Xk = xn ・ W n=-N/2
パスカルとかCでコード載せてもそのまんまじゃコンパイル出来ない場合が殆どで 直すにしても説明が無いから結局ゼロから書き直し
>602 画像の例じゃないけど 数式であらわしたほうが有効な例を示す。 NXNの行列の掛け算 A*B*C を計算しようとすると sigma (aij bjk ckl) で計算時間は N^6 計算したいものが行列なことがわかってるなら B2=A*B 答=B2*C とすれば 計算時間は2*N^3
610 :
デフォルトの名無しさん :04/11/20 12:00:12
画像処理でsseやmmxを使った例を教えてください。
>>605 前から? 記憶違いかなあ。pascal と聞くと、そういえば先生方って Mac が
お好きだった感触がある。関係無いか。
>>611 Macがどうして好きかというと、これは簡単な話なんだけど、
x86系のCPUが入っているPCはハードウェアやソフトウェアがバラバラだよね。
それに比べてMacは少なくともハードウェアが均一だから、不都合があったりしても
同じ状況下での問題は既に誰かが報告しているかもしれない。
最悪の場合はサポートに頼ればよい、ということになる。
研究者にとっては自分の研究以外のことで頭を悩ませたくないわけだね。
(´,_ゝ`)
Macみたいに糞ハードしか無いコンピーターなんか使わないよ 予算消化の為に馬鹿高いボッタクリ計算機買ってるだけだよ メーカー製パソコン買うだろ NECか富士通買わないでMAC買うのはよほどの馬鹿だったと思うよ
純粋にアーキテクチャ的に見てMacって画像処理にどうなの? PPC vs x86 とかaltivecがどうとかメモリ関係のアーキテクチャがどうとか。
あと同じx86でもIntelとAMDだとどっちが良いんだろう?
WYSIWYGやRGB以外の選択、いち早い多色の導入など等、 昔はMACも意味があった
>>616 整数演算だとIntelのが強くて、小数演算だとAMDが強いんじゃなかったっけ?
SIMD使うならPentium4系が有利。普通に組む分にはOpteron系が概ね有利
>>614 君みたいなのはまだまだ発展途上のあまあまちゃんなわけだよ。
Mac程度でぼったくられると思うなんて 貧乏人はかわいそうな人でちゅ
>>621 君はそうやって死ぬまでぼったくられてなさい
マカーって任天堂信者とSEGAヲタに似てるよね 選択肢が無いと安心するんだろうな
戦闘時の選択肢は多ければ多いほど良いが 食堂と人生の選択肢は少ないほうが迷わなくて良いんだ
>>624 世の中、一途ってやつばかりではない。オレなんぞ行ったり来たり。
それぞれ、面白い。カミさんのみせめて一途。
研究室のパソコン 画像処理でググルとintelのパソコンしか出てこないな Mac置いてある研究室ってPhotoshopだけの為に導入しているふいんきだな 流れを画像処理に戻すけど Photoshopプラグインって作りやすい? susieプラグインって多いけど、Photoshopってあんまりプラグイン無いよね。 オリジナル画像形式を作ってsusieプラグイン同梱って結構あるみたいだけど
>>627 susieで画像読み込んだとして、書き出しはどうするの?
abc形式は少ないし…結局自力?
>>627 まぁ、研究内容によるだろう。
プログラミングするのにMacでも不便は感じないし、余計なことに気をつかわなくても
良いから楽だし、x86でないと困る場合はあまりない。
あるとしたらデバイスを扱う時くらいのものだしね。
Macが高いと言っても使っている分には楽だから気にしない気にしない。
話題を逸らすパターンも何度も見た
jpg画像やbmp画像をそのまま入力したらワイヤーフレーム(ポリゴンメッシュ)に 変換できたりできますか?(´・ω・`)
>>631 なんかのソフトってこと? それとも Photoshop ってこと?
自前ではいろいろ遊んだな。白黒 Mac の screenSaver の女の子の動画を
pc98 の vram に送り込んで楽しんだこともあった。mag, maki -> PICT
変換もやったし、gif の表示を自前で Mac に表示させたし、そのソフト
を windows に移植して、まだ使っているが、bitmap の構成には双方とも
そんなに違和感はないな。draw 命令も似たようなもんだし。
windows の bmp には、BI_JPEG があるが、PICT にもあるし。
635 :
デフォルトの名無しさん :04/11/21 23:59:13
>>633 OpenCVというソフトウェアでしょうか?
>>634 ソフトウェア探してるんですが
ソフトウェア板では無いと言われたんで
やっぱそういうソフトウェアは無いのかなと…
ただ画像処理に詳しいここの人ならしってるかなと…
637 :
デフォルトの名無しさん :04/11/22 01:35:05
>>636 教える気無いならいちいちレスしないで
ぐぐれってアホみたいなレスつけんなよ
>>637 そのアホにつまらないレスつけられるほど愚かな事をするなよ
>>637 どう考えてもおかしいだろう。
> OpenCVはソフトウェアでしょうか?
これを見ると、ちゃんと調べたの?っていいたくなるぞ。
2ちゃんねらー同士ってだけで友達でもなんでもないんだから ロクに調べもせずに質問をするだけするってのはイカンな。 友達同士ならまだしも、知らない人からいきなりちょっと調べりゃ分かる事を 質問されりゃそりゃググれで済ますのも無理ないだろ。
642 :
デフォルトの名無しさん :04/11/22 09:10:32
643 :
デフォルトの名無しさん :04/11/22 10:50:43
今朝のトクダネで、誘拐犯の送った写真を解析するとかって話題で、 サンプル画像の参考文献が画面の隅に表示されてたけど、憶えてる 人いますか?
>630 話題そらして勝った気分になってるのだろうか 匿名掲示板で勝ち負け競っても意味ないような....
>>627 Adobeが、すっげーきっつい認証してて(英語)
開発キット手に入れるのが大変なんだわ。
Adobeのプラグインって会社が出すような製品ばかりだから研究に向いてないかもな。 コンバータ作って、susieプラグイン添付ってのが一番いいかも。
hirax.netに行ってプラグインで検索しとけ
そこでGIMPですよ
バイキュービック補間の端の方(16ピクセル分のデータが採れない領域)の処理は どうようにするのが一般的なのでしょうか? バイリニアの場合は4辺付近は単一方向のリニア補間、 4隅付近はニアレストネイバー補間にしていたのですが、 バイキュービックはパターンが複雑(採れるピクセルが4/6/8/9/12/16ピクセル分)で、 スマートな実装方法が思いつきません。 (「存在しないピクセルの分は最も近いピクセルで埋めて無理矢理16ピクセルにする」 というのを思いついたのですが、試してみたところ遅過ぎで使えませんでした)
元画像の周囲4ピクセルずつを適当に最近傍画素かなにかで埋めたものを元画像として使用するってのがオーソドックス。
>>649 遅すぎるのは、おめぇのプログラミング技術が低いからだろう。
それくらいのアルゴリズムで遅すぎで使えないことになるとは思えない。
もしかして2次元配列を使ってるだろう。
スピードが重要な場合は ・エッジ処理 ・それ以外 (分岐が不要な領域) で分けてそれぞれ別のコードを書くのがフツー 後は垂直・水平でフィルタを分割して、16 個の参照ではなく 4+4 の参照に減らすとか # 精度が重要な場合は中間画像のビット数を増やすか、いっそ double で確保する
>>650 さんの方法で解決しました。
>>650 さんありがとうございました。
>>651 さん
二次元配列は使っています。乗算が減っても速度的に不利なんでしょうか?
>>653 651はいつもの荒らしちゃんだと思う。無視無視!
>650ってなに?ひとまわり大きい画像を用意するって事? そんなんがオーソドックスなのか・・・? 俺は分岐処理させてるが、速度的には不満はないなぁ。 ピクセルひとつを処理するのに、毎回毎回、周囲16個所参照してないよな?
>>656 ソース見れば判るようにこの人が書いてるのは
bycubic という「あるごりずむ」についてであって
bi-cubic とは違う処理だから気にすることはない
ソースは見てないけど、倍率が1であれば、普通に処理すれば 4点に対する重みが0、1、0、0になるから、画像は変化することはないよ。 ところで、>649が遅いのに>650のやり方で速度は上がったのか? そんな端の数ピクセルの処理だけで激しく速度が変わるとは思えないんだが。
>>658 それのおかげて、ループ内の条件分岐が減ったとか…よく分からんが
あー、条件判定をループ内でやってりゃ、遅くなるのも当然か。 >652のように、最初から別ループで分けてやってくれ。
IEで選択反転させると浮かび上がる画像ってどうやって作ってるの? 青で消える部分は普通の画像で、消えない部分に埋め込んでるんだろうけど… 隠し画像に置き換えるだけだと、元画像が崩れるだろうし
隠し画像の明るさやコントラストを下げる
663 :
デフォルトの名無しさん :04/11/30 18:43:55
linuxで画像のパターンマッチングとか出来るソフト(出来ればオープンソースで) をご存じの方いますか? windowsだと結構転がっているのですがlinuxではありませんでした... windowsのコードを流用しろって意見もあるんでしょうが,あまり時間がないもので. よろしくです
>>663 なんでお前の仕事を手伝わなきゃならん?
>>665 どもどもサンクスです.
なんとかいけそです.
669 :
デフォルトの名無しさん :04/12/01 20:08:57
>667 おもしろい DARPA GC2005で使ってみてよ
670 :
デフォルトの名無しさん :04/12/01 20:12:18
某オークションでブレードサーバ買っとけば良かった
ブレードって?
Google "ブレードサーバー"
他の物は? マウスとか、キーボードとか。 ブレードセンターの中だよ。
これがサーバー?
ちゃんと同期とれよ
C言語で2値化された画像の白画素数を数えるプログラムを作るのに参考になるサイトや本はありますか?
似たような画像がたくさんあって、 (背景一色、真ん中に円状の対象物が写っている。背景・対象物ともに似ているが同色ではない) そこから対象物だけを取り出して、特徴を記録したいんだけど、何で勉強したらいいでしょう。 「特徴」とは、「その円のどこが黒っぽいか」 です。 一枚一枚手で処理するのがイヤってだけなんですが・・・・・・・ シロート質問ですみませぬ。
>>678 とりあえず、画像処理工学とかなんとか書いてある本を買ってみれば?
開発を弊社でお引き受けすることもできますが(w
>>679 うぬぅ 長い道のりですなぁ・・・・・・ Cのサンプルとかついてる本があると嬉しいのだが。
レスありがとうです。 開発を頼む懐の余裕はないでつ;;
>>680 C言語による画像処理入門
ピンクの表紙の本で、わりと初歩的なことが書いてある。
>>681 どうもです。 amazonで注文してきましたー
>>678 どんな画像かわからんが、結局手作業が一番早いかも
DirectShowスレで見つけたこれ.得意げに配布してるけど,OpenCVのサンプルいじっただけじゃん.痛々しい. www.geocities.jp/laughing_man_lol/
>>684 Windows+DirectShow+OpenCVを使用したプログラムの勉強をしています.
OpenCVの機能を使うと工学ナビさんで公開されている笑い男模倣ツールが簡単に
実現できそうな気がしたので学祭中に作ってみることにしました.一応の完成は
Ver. 0.1で達成した(?)のですが,勉強も兼ねてもう少し手を加えてみようと
考えています.
って書いてある。
この人はたぶん今までこういうライブラリをあまり知らなかったのだろう。
まぁ、ライブラリの使い方を覚えるのに、いろいろ作ってみるのは良いことだね。
686 :
デフォルトの名無しさん :04/12/02 17:09:11
>684 誰でも一度は通過する青春の門
>>681 俺もその辺がお勧めかな(というか、他に画像処理の本が少ないな…)
クロマキー辺りで物体取り出して、ラベリング+面積・円形度で円発見して、円内のパラメータ解析って感じか?
円の重心と中の黒い点の重心の差で、位置関係出せばいけそう
……円だけを上手く取り出すのに苦労しそうな感じがするな
(背景と円が似ている色ってのと、円内が単色じゃ無いって辺り…同じ円なら、テンプレートマッチングのが良いか)
>>684 ほぼ同等のソフトを自力で組んだけど、ファイルサイズがめちゃくちゃ違った。俺のは100KB行かない…
(MFC使わずAPI叩いてるからだけど……俺のが精度良いけど、はるかに重いな…ここは頑張り所か)
まぁ、論文嫁と。
>>684 確かにOpenCVにおんぶにだっこなソフトであるが、動作がサンプルより軽くてファイルが妙にでかいのが気になる。公開できないコードを含まれているとあるが、何か他のライブラリでも使ってるのかも。
ソース読んでみたいな。
画像処理の本ってけっこうある方じゃないの? と、最近音声処理を始めた私は思うわけです_| ̄|○
Cマガ買って 英語のサイト見てればなんとかなるべ
>690 >画像処理の本ってけっこうある方じゃないの? たしかになくはないが、分野的に広すぎるので、分野によってはこれといったものがない 基本的なフィルタリング処理ぐらいまでは和書でもあるけど、特定分野にちょっと踏み込むと洋書か 海外論文になるからね
この板にもサウンドプログラミングってスレッドがありますな スレ違いすまそ & sage
広角レンズで撮った、樽型に写っている写真の柱などを真っ直ぐに補正するプログラム を作れないかと試しているのですが、中心を補正しても周辺は樽型が残り、中心のちょっと 外を補正するまで球面の半径を小さくすると、周辺が流れて?しまいます。 レンズ自体は非球面とかの話もあるので、単なる球面ではだめだと思いますが、 参考になる文献とか情報はないでしょうか。
中心と端の補正を分けたらいいんじゃね 適当な半径で中心円と外側を分けて 別々に補正して 合成・・・駄目か?
そういえばそんなの昔作ってよろこんでたなぁ…
歪みポリゴンにテクスチャとして貼り付けて、正面視点で見れば正しい画像が得られるような機がすうr
その写真を撮ったカメラが使える環境にあるならば一度方眼紙を撮影してみると良いかも。
702 :
デフォルトの名無しさん :04/12/04 18:45:55
>>697 歪曲収差でググルべし。
自分で作るのが面倒ならOpenCVに関数があるし、マニュアルに文献が含まれてるよ。
レス、各位に感謝。
>>698 球面の断面を高次曲線にするとか、複数の曲線で結ぶとか考えたが、接線の勾配を
同じにして結ぶなんぞ、手に負えない。
>>699 私も喜びたい。
>>700 歪みポリゴンとは? 新規に勉強が必要。
>>701 可能ではあるが、実をいうと、雑誌のも撮ってカミさんの型紙への利用なども懸案。
>>702 OpenCV を見てみます。歪曲収差でぐぐったら、わが社、わが製品はこんなに
すごいというのはあるが、流石、中身は、企業秘密めいている。自分のももし出来ても
恥ずかしくて公開をしぶるだろうとは思う。
704 :
デフォルトの名無しさん :04/12/04 23:20:15
>>703 リンクスが出しているHALCON活用法にわりと詳しい解説有り。
「画像処理の解説書」として良くできていると思う。
いつの時代に書かれたか判らない「C言語の・・・」などの本より
よほど参考になる。
705 :
デフォルトの名無しさん :04/12/05 04:46:18
>>704 調べたら、1993年以来画像の本などは買っていなかった。ご紹介の本をぐぐったら、
現物を見たくなった。
>>705 勉強になります。数日前三角関数の勉強しておいてよかった。白紙で考えるより
こういうのを見て考えるってのは、本当に助かります。
歪曲収差でぐぐったら、わが社、わが製品はこんなにすごいというのはあるが、 流石、中身は、企業秘密めいている。自分のももし出来ても恥ずかしくて公開をしぶるだろうとは思う。
708 :
704 :04/12/05 13:28:55
>>706 本屋には売ってないです。直販のみ。2000円だから買ったら?
書店で売っている画像処理の本って、ろくなものは無いよ。
709 :
デフォルトの名無しさん :04/12/05 15:08:16
710 :
デフォルトの名無しさん :04/12/05 15:14:37
711 :
704 :04/12/05 16:26:55
>>709 なんでそういうつっこみになるかなぁ。
都会の書店で売っているまともな画像処理の本、挙げてくれ。
>>708 直販とは思いましたが、出かけた序に、何冊か見ましたです。
これと思しきものはありませんでしたが、市販ソフトのマニュアルなんぞ
眺めて来ました。
本当に探すなら、アキバのラオックスでしょうね。
本が大した事ないと思うなら論文よみなよ。
714 :
デフォルトの名無しさん :04/12/05 20:26:14
アナクロな連中が多いなぁ。 何のためにamazonがあるんだよ。 専門書でも洋書でも簡単に手に入る時代になってるって言うのに。
amazonで探したけど
>>704 の言う
リンクスが出しているHALCON活用
は蜜から中田
amazon で洋書頼むと届くまでに時間がかかるのがなぁ IEEE からの論文購入なら、その日の内に PDF が手に入るし
717 :
704 :04/12/05 22:28:22
>>715 最初から「直販のみ」と言っているでしょ。
一般の小売りルートには乗せていないから、あの内容であの価格。
内容からすれば倍してもおかしくない。
個人的には、高価な技術書を中身を見ないで購入することには抵抗が・・・
と言いつつ、問題の本は買ったわけだが。
HALCONって名前は聞くけど,その解説書はそんなにいい内容が乗ってるの?
レビューきぼんぬ.
>>703 で,プログラムはできそう?
>>718 曲がった柱なんぞの認識をどうするか、考え中...
画像認識になって、また調べている。梁と柱があると曲率から絵の中心がでないかと。
四隅と中心を固定して、ベジェ曲線で辺を中心へドラッグするとどうかなとか。
変形のパラメータは出来るだけ少なくしたいし。try&error も少なくしたいし。
ヒューリスティックになるのはやむをえないかなとか。で、午後は昼寝。
>>720 try&errorでパラメータ求める方法でいいと思うよ.
普通はチェスボードみたいな模様を何枚か写して,パラメータ求めたりするけどそれでも毎回推定パラメータは変わる.
自動化するより,妥当なパラメータを簡単に求められるユーザーインターフェース作った方が実用的だと思う.
radial distortionの補正パラメータなんて,高々5?6個なわけだし,厳密さを求めないのであれば,光学中心(2個),補正係数(1個)の合計3つで済む.
光学中心を画像中心と仮定するなら補正係数を設定するスライダーバー一個で済んじゃう.
722 :
704 :04/12/06 23:36:11
>>721 同意。
以前作ったことがあるが、デジカメの光学中心は結構ずれてた。
724 :
停止しますた。。。 :04/12/09 09:25:17
真・スロッドストッパー。。。( ̄ー ̄)ニヤリッ
725 :
デフォルトの名無しさん :04/12/09 09:41:13
へたくそw
保守派
OpenCV初心者なのですが、 リファレンスマニュアルに載っているHoughLineのプログラムを使って Hough変換で輪郭線をとってみたんですが、ぶつ切りのラインばっかり出てきて まともに動作しません。 HoughLineとるときのコツとかあるんでしょうか?
728 :
デフォルトの名無しさん :04/12/12 11:51:13
元画像、変換後の画像、プログラムソースをみないことにはなんともいえない
cvCvtColor(src, buffer1, CV_BGR2GRAY); cvCanny(buffer1,buffer2,100,255,3); lines = cvHoughLines2(buffer2, storage, CV_HOUGH_PROBABILISTIC, 20, CV_PI/360, 80, 30, 10 ); cvCvtColor( buffer2, effect, CV_GRAY2BGR ); for( i = 0; i < lines->total; i++ ) { CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); cvLine(effect, line[0], line[1], CV_RGB(255,0,0), 3, 8 ); } ソースはこれです。 元画像 変換後 ______________________ ____ ________ | | | | | | | | | | | |_____________________| _________________| 正方形を赤一色に塗った640×480のjpeg画像(背景は白)をHough変換してみました。
すみませんずれました(´・ω・`) 元画像 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | | | | | | | | | | | | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 変換後  ̄ ̄ ̄ ̄  ̄ ̄ ̄ | | |  ̄ ̄ ̄ ̄ ̄ ̄
CV_PI/360
そういや、市販のモザイク外す装置ってどういう処理してるんだろ? 警察が作ってるのとかもあるらしいけど
>>732 使ったことあるのか?どういう画面になるのかうpしてくれたら
考えてやってもいいぞ。
>>733 使ったことも無いし、持っても居ない
ただ、技術的に気になった
>>734 いや、外すんじゃなくて、自然に見えるように修正してるだけだろうけど、不可能って訳じゃないはずだよ
警察の例はモザイクじゃなくて、解像度の荒い監視カメラから綺麗な画像を取り出す奴とかだったかも
737 :
デフォルトの名無しさん :04/12/14 13:56:15
高速化についての質問です。 画像のデータをメモリにのせるとき、なるべく順列アクセスできるように 一次元配列にしたりするんですが、画像が大きい時、L2キャッシュに 入りきらず、メモリアクセスに足を引っ張られて遅くなるような気がします。 そこで考えたのですが、例えば10x10のデータが100個あって、キャッシュが 10だった場合、100の配列を確保するのではなく、10の配列を 10個にした方が高速になるのではないでしょうか・・・どうでしょうか・・・ いまいちメモリのどの部分がどういうタイミングでキャッシュされるのか わかってないんですが・・・
そこまで気にするほどタイトな処理ならインラインアセンブラなり使ってキャッシュ制御命令でも挟めば?
>>738 > 100の配列を確保するのではなく、10の配列を
> 10個にした方が高速になるのではないでしょうか
ならん
> なるべく順列アクセスできるように一次元配列にしたりするんですが、
無意味
順にすべてアクセスしてしまったんではキャッシュの意味なし。
(仮想記憶がネックなら効果あるが)
一度でもアクセスしたデータを骨までしゃぶりつくすように作れれば理想的。
> 100の配列を確保するのではなく、10の配列を > 10個にした方が高速になるのではないでしょうか 結局2次元配列では…
prefetchしたらどうなの?
>740 一度アクセスしたアドレスを再びアクセスするときに高速化されるのがキャッシュの基本。 配列が一つでも複数でも関係ないよ。 特定のCPUの特定の場合の究極の最適化として、キャッシュラインとかウェイのことまで考慮した上で小容量バッファを幾つか取るような最適化はあるかもしれんけどね。 しかしそれは一つまとめて取ればいい物を複数に分割するのとは違うんだな。
libpng,zlibのASM対応でビルドしたいのですが "mlは有効な命令では〜"(うろおぼえ) みたいなエラーが出てうまくコンパイルできないです。 vc6sp5でプロジェクトは付属のものをそのまま使っています。 微妙にスレ違いっぽいですがよろしくお願いします。
>>745 MASMが入ってないんじゃない?
Processor Packからml.exe ,ml.err,h2inc.exe,h2inc.errを抜き出して、
vcのbinフォルダに入れてみるとか。
おっしゃるとおりにやってみたら出来ました。 だた読み込み速度が以前と変わった感じがしないのですが ほかに必要なことがあったりするのでしょうか? 現在800x600x4をPen4-1.3で平均0.08msぐらいかかります ともあれどうもありがとうございました。
マシン語で書いてあれば何でも速くなると思ってる?
749 :
デフォルトの名無しさん :04/12/18 18:44:46
YES! コア部分はオールアセンブラなんて聞いたら体感速度上がるじゃん。
いまどきのCPUだったら、パイプラインの最適化とかを考えるとIntelコンパイラのほうが速い場合が多い。
GPU使うのって難しいですかね
CgでCoreImageみたいなことできるんですか?
読み込み速度ってそうそう激変するモンじゃないよねぇ。
755 :
デフォルトの名無しさん :04/12/20 20:39:06
>>749 あーーーー、はやいなぁ。
いや、早く感じるよな。確かに。
>>756 日本にもGPU使ってなんかやろうという人たちがいたよね.
GPUの処理ってそんなに柔軟にプログラムできるものなの?
>>757 ほとんどCみたいにプログラミングできるよ。
radeon にはないの?
Cgか
761 :
デフォルトの名無しさん :04/12/28 13:02:52
「2次元バーコード」のスレにも書いたのですが, こちらでも質問させてください. 画像中の,QRコードの位置検出パターン(2次元バーコードの角に印刷された, 「回」の中を塗り潰したような部分)の座標を検出するためには,どういった アルゴリズムを使うのが良いでしょうか? QRコードの規格書の ISO/IEC18004 ないし JIS-X-0510 に,そうした情報は 書いてあるのでしょうか? お教え頂ければ幸いです…
>>762 ゴメンナサイ
当方,画像処理初心者なのですが,必要に駆られて,
JavaWebStartで起動できるようなOMRシステムを作ることになりました.
ひとまず完成し,オープンソースで公開しました.もし興味があれば,
探してみてください.
さて,先に質問をした,2次元バーコード読み取りの件は,
このOMRシステムに組み込めたらと思っているのですが,
それ以前に,OMRの原稿画像の位置合わせのアルゴリズムなど,
我ながら,いかにも素人臭くてダサイ…と思っているので,
こちらを改善するヒントにもなればなぁと.
アルゴリズムの名前,参考になる書籍など,
アドバイスをいただけないでしょうか.
>>761 JISに書いてあるよ。その通りの実装で充分かどうかは別として。
>>763 仕事柄マーカーを見つけて位置合わせをするプログラムも書いているけど、
非常に単純な処理しかしてないよ。二次元バーコードも大して変わらないと思うけど。
>>767 ありがとうございます,
ttp://www.jisc.go.jp/app/pager?id=48416 を見つけました.
pp.52-53 に書いてありました.
・x軸方向に,1:1:3:1:1の比率を持つ,黒-白-黒-白-黒の列
(誤差許容幅0.5)となっているピクセル線を探し,そのうち,
「位置検出要素パターンの内側の暗の正方形を横切る
一番外側のピクセル線上の点A及び点Bの中点を通る線」を求め,
・同様に,y軸方向への処理での線を求め,
・これらの線の交点を,位置検出パターンの中心位置とする,
というアルゴリズムであるとのこと.
「一番外側のピクセル線上の点」という辺り,
ここに書かれたままの方法だと,些細なノイズに弱そうですね….
また,このアルゴリズムの場合,約90度の単位での回転ならOKですが,
斜めになったQRコードは認識できない,ということになりますね.
もしうまく認識できなかったら,原稿画像をover samplingしたものを
すこしづつ回転させながら,成功するまで処理をやりなおせばいいのかな….
>>769 どんな角度でスライスしても
>・x軸方向に,1:1:3:1:1の比率を持つ,黒-白-黒-白-黒の列
は見つかるわけだから、まず最初に最長のランでそれらしいものを見つけて、
その後スライスするラインの角度を変えて最短のランが得られた角度を基準
とすればいいんじゃない?かなり単純&高速にできそうだし。
>>770 > どんな角度でスライスしても
> >・x軸方向に,1:1:3:1:1の比率を持つ,黒-白-黒-白-黒の列
>
> は見つかるわけだから、
あ…,おっしゃるとおりですね.だとすると,
> まず最初に最長のランでそれらしいものを見つけて、
> その後スライスするラインの角度を変えて最短のランが得られた角度を基準
> とすればいいんじゃない?
こちらは,基準座標を求めた次の段階として,
原稿画像の傾きの角度を求める段階,ということでしょうか?
772 :
デフォルトの名無しさん :04/12/29 08:45:43
すいません、ageさせてください。 ブロブ解析において、ひとつのブロブ(島)の中にある孔の個数を知るには、 対象のブロブの内部だけを再びブロブ解析しないとダメなのでしょうか? ブロブのインデックスがつけられたランレングスコードから この問題を攻めていけないものでしょうか?
わたしの場合、最初のブロブ自体ランレングスから求めているので、 それを再帰的に適用するだけ。計算量的にも問題があるわけではない 対象のブロブの内部だけを再びブロブ解析 ○ ランレングスコードから攻める ○
774 :
デフォルトの名無しさん :04/12/29 20:40:52
>>773 772ブロブ男です。
レスありがとうございます。
もしかすると目からウロコの予感がしています。
私もランレングスからもとめているのですが、
白黒2値画像の、黒画素または白画素、どちらか片方だけに注目した
ランレングスコードしか作っていませんでした。
(1) 黒画素と白画素、どちらにも注目した
連続的なランレングスコードを作成する。
(2) 黒画素ランの接合判定する。
(3) ブロブの含まれるスキャンライン領域を限定して
白画素ランの接合判定をする。
という感じでしょうか?
typedef struct tagTHE_RUN{
int xs;
int xe;
int scanLine;
int index;
int thisRunIsBlack; // add?
}THE_RUN, *PTHE_RUN;
それとも、黒画素か白画素どちらか片方に注目したランレングスコードから
実現することが可能なのでしょうか?
うわぁ、ageちゃったー、ゴメン。
Windowsの画像入力ボードで、SDKからC#で書いてるやつってありませんか? VC++,VB,C++Builder,Delphiまでは見たことあるんですが、 VC#でヘッダ書いてるのは、見たことがありません。 (正しくは *.h じゃなくて *.cs なんだけど) 画像入力ハードウェアの絡むプログラムは、 今後もWin32とかMFCでコーディングしないといけないのでしょうか? はげしく鬱でございます。
VCとかDelphiからC#に変換するコンバータあるじゃん それ使えよ
をぉ、そんなナイスなツールがあるんですか、探してみます。
素人考えだけど、 ハードウェアアクセスのプリミティブなところだけ、 Win32ネイティブのDLLにすればすっきりするのでは?
>>779 ごめん、質問の仕方が悪かったかもです。
工業用の画像入力ボードのハードウェアアクセスのためのライブラリは、
そのボードを作ったメーカーがWin32ネィティブのDLLを添付するのが一般的です。
そして、そのライブラリをアクセスするためにVC,VBのヘッダも供給しますが、
慈悲深いメーカーはC++BuilderやDelphiのそれも供給してくれる場合があります。
しかし、C#から[DllImport(...)]でアクセスできるようなヘッダを供給してくれる、
さらに慈悲深いメーカーは、いまのところ無いような気がするので、こちらに投稿したというわけです。
ここでの「ヘッダ」とは、ライブラリのインターフェースの意味です。
VBやDelphiにヘッダファイルなんかないぞ、というツッコミは無しにしてください。
C/C++のヘッダから[DllImport(...)]を自分で書けば済む話じゃないの? マーシャリングさえ理解すれば、難しい話じゃないでそ。
>>781 それはいえてます。
自分で翻訳すれば済む話ですので、今はそうしています。
ただ、ボードメーカなどが、今後C#にも対応していくかどうかが、
ちょっとだけ気になっています。
DirectShowにはC#のラッパが出現してきているらしいのですが、
工業用の画像入力ボードSDKもC#に対応しはじめるか、今後も無視し続けるか、
どっちなんだろうかな、と。
(DirectShowのC#ラッパの噂はGDNJapanで聞きますが使ったことはないです)
>>783 それそこ業界の動向に注視しつづけるしかないかと。
業務向け画像関連ソフトウェアで.netの利用が増える、
若しくは、その工業製品向けGFXボードの大手ユーザーが、
.net版APIセットを希望する等のことがないと出てこないと思うけど。
小さな会社の製品なら、交渉次第で作ってくれるところは結構ある。
そんな感じのことは、とある製品群で何度かやったことあるよ。
MIL LiteにC#ラッパがついたら業界は「右にならえ」になりますかね? どっちにしてもLonghorn待ちかな... しまった、ここは画像処理スレだった。Windowsボヤきスレじゃなかった。
>>780 そういえばさWin95が出始めたとき、DOS版ライブラリは標準添付で、
Win版ライブラリは5万円ぐらいで別売という時代があったよね。
C言語によるFFTを使った画像処理のプログラミングについて詳しく書かれている参考書を教えてほしいです。 よろしくお願いします。
スレ違いすいませんでした。誘導ありがとうございます。
790 :
デフォルトの名無しさん :05/01/09 04:07:39
PhotoShopの自動選択ツールのような感じで、 人間の周りだけを自動選択するという事は可能なのでしょうか。 やはりあれは色がある程度統一されていないと厳しいですよね。 全く別の服の色まで選択できるとしたら背景まで選択できてしまう 事になってしまいますよね。 やはり厳しいですよね。
791 :
デフォルトの名無しさん :05/01/09 04:17:44
>>790 エッジ抽出して輪郭とればいいんでないの?
792 :
デフォルトの名無しさん :05/01/09 16:17:04
画像処理を勉強したいのですが はじめはどういったような本を読んで良いのかわかりません。 一番最初に読むのはどういった本が良いのでしょうか? 一口に画像処理と言っても沢山ジャンルがあると思いますので 最初は簡単そうなQRコード関連かな?なんて思ってます。 意見をお聞かせ下さい。
なんのために画像処理を勉強したいのかから考えたほうが いいんじゃない?
794 :
デフォルトの名無しさん :05/01/09 16:36:52
>>793 楽しそうだからですよ。
勉強なんてそういうものでしょ?
禿同
ゆとり教育の弊害がこんなところにも
798 :
デフォルトの名無しさん :05/01/09 17:11:54
>790 肌や服、髪毛の色彩には連続性がある。画像処理のプロなら、環境色と素材ごとの平均的な色彩の関係を知っている。HSV,RGBに成分分解したデータを統計し、分散図を描いてみよ
> 楽しそうだからですよ。 > 勉強なんてそういうものでしょ? =無目的という事。 研究・勉強するにしてもなんらかの目的がある。 ただ、楽しいからする、というのであれば、それは趣味・フェチの類だよ。
800 :
デフォルトの名無しさん :05/01/09 20:03:46
顔画像の特徴認知でYIQ表色系を用いて唇領域を求めたいんですけど、その方法としてQが特定の値を持つ範囲を検出するということなのですが、具体的な値の範囲分かりますか??
>>799 「楽しそうだからやる」ってのは楽しむ事を目的としてると思うが?
まぁこれは屁理屈だがなw
>>799 俺は趣味で始めたけどね。
それが発展して大学で専攻した。
最初はほとんど趣味とか興味の範囲でしょ
>>799 「勉強」という言葉は、「何か目的の為に行う」以外にも
「好きだから、面白そうだから行う」という場合にも使われる単語と思いますが、
各自の「勉強」という行為をどう定義づけているのかにもよります。
いや、だから792は「趣味で画像処理勉強したいのですが何か良い本ありませんか?」 って言ってるだけでしょ。何で勉強の定義の話になってるのか分からん。 'image processing'でググってね。
CG板で質問したんですがプログラム板が適切といわれたので質問します。 3Dで「あおり補正」に関する文献、幾何変換方法等ありませんか? ググって見たけど「これ」っていう物が見つかりませんでした。 あおり角から計算できるような変換行列とかの記載があればベストなんですが 。
>>800 そういう質問のしかたは黙殺されるぞ。
もうちょっとうまく質問しろ。
809 :
デフォルトの名無しさん :05/01/10 12:42:18
>>808 すみません。
800です。
画像処理の初心者なので分からない事だらけで困っています。知っている方いらっしゃいましたら教えてください。
matlabで顔画像処理をしています。唇の領域を知りたくて、RGBカラー空間の画像をYIQ空間に変換したのですが、
Qの具体的な値が分からなく検出できません。このYIQ空間への変換後の手順、または別の方法を知っている方
いらっしゃいませんか? お願いします。
810 :
デフォルトの名無しさん :05/01/10 12:46:15
>>789 Mathematicaって数学チックだからCに置き換えるのは難しいと思うよ。
高度な数式処理とか簡単にできるようになってるから、それらが含まれているとCに置き換えるのは難しい。
つーか、前の方でpdfの文献挙げてた人がいるけど、あれを読んでプログラム書けないのなら数学の知識が足りないと言わざるを得ない。
OpenCVは元のアルゴリズムを理解できていなくてもパラメータ与えるだけで動くはずだけど、試せない?
>>810 Mathmaticaは立派な関数型言語です
>>811 うん.
漏れが言いたいのはMathematica->Cにするとき,難しい数学の関数を誰が用意すんの?って話.
815 :
デフォルトの名無しさん :05/01/10 18:15:52
>>812 すみません。素人なのでよく分かりません。実データを見ても何も分からないのですが、どうすればよいでしょうか?
RGB空間画像からYIQ空間に変換するとQの値が非常に狭い区間になります。論文でRGB空間画像を
YIQ空間に変換する方法がいいみたいなことだけは書いてあったんですけど、Qのどの値が唇領域
なのかが書いておらず困っています。
>815 一点ずつ色を取り出してみれ。
817 :
デフォルトの名無しさん :05/01/10 18:54:15
>>816 分かりました。とりあえずやってみます。
818 :
789...=697 :05/01/10 19:22:46
まとめてすみません。
>>810 ,
>>811 ,
>>813 レスをありがとうございます。
関数の置き換えは Newt[] とかは大変でしょうが、789 に挙げた後者の URL の
中のソースには、込み入った関数はなさそうなので、どんなものかと思った
次第です。Mathematica 入門とかの URL も見ました。Cに似ているという
説明もありましたが、表記が全部は分かりません。"...=. " など???
後者の URL も画像の上でコントロール・ポイントを指定しているやり方
なので、ヒントにはなりましたが。
OpenCV の undistort() では、4つのパラメータを使うようになっているので
すが、この意味が、も一つというところです。
OpenCV のサンプル例を、更に当たってみようと思います。
>>807 理解度が足りないのでもうちょっと勉強してきます。
>>800 あのさ、黙殺されるぞ、っていったのは、態度が悪いっていってるんじゃないんだよ。
態度が悪くても、ちゃんと目的を書いていたり、意味不明なことでなければ、レスはつく。
唇にあたる画素のRGB値をYIQに変換できる術があるんだから、
写真雑誌を一冊スキャンして、Qの値を自分で調べれば済むことだろう、ということだ。
>>816 は、そういうことをレスってるわけだよ。
821 :
デフォルトの名無しさん :05/01/13 23:57:11
画像の暗号化の課題が出たのですが、まるでわかりません。 C言語のソースを見てみようと探してるんですが、みつかりませんでした。 どなたか置いてある場所知っている人いらっしゃいますか?
コダる、の方がよくない?
1bitずつシフトすればおk
質問答えてくださった方ありがとうございました。 やってみます。
暗号化にもいろいろあるからねえ
電子透かしとか?
830 :
デフォルトの名無しさん :05/01/14 04:50:10
>>818 undistortの引数は,入力画像,出力画像,ディストーションマップ,線形補完フラグ.
ディストーションマップはdistortinitで予め作っておくもの.(これは動画などにたいして連続で処理をする場合,予め変化量を計算しておくもの)
動画などに適用しないのであれば,undistortonceを使うのも良い.
undistortinitの引数は
1番目:処理する画像(サイズさえ合っていれば何でも良い)
2番目:処理する画像と高さが同じで幅が3倍(線形補完する)もしくは幅がおなじ(線形補完しない)
3番目:カメラの内部パラメータ(3x3行列) focal length 画像中心等の情報を含むもの. これはマニュアルのPDFを参考にすると良い.
4番目:歪み補正係数.
5番目:線形補完フラグ
3,4のパラメータを求めるのが面倒なんだよね・・・.
昔,やったことがあるんで,後でどのくらいのパラメータになったか教えたげる.(そのままは使えないと思うけど)
探すのに手間取りそうなんでまた今度.
電子透かしと暗号の違いが判らないのに画像処理なんて言ってるスレはここですか。
私は、「画像の暗号化」の意味がわかりませんでした。
>>830 有難うございます。カメラのデータを使うものは、OpenCV で追求して見ようと
思います。
一方、雑誌などの1枚しかないものは、試行錯誤で補正係数を決めるしかないと
観念するところまで、来ました。ricoh の文献では、f(θ)を2つの係数で決めて
いますので、2つの係数をスライダで動かして見て、曲線を求めて、それを当てはめて
小さいサンプル画像をリアルタイム補正し、ま、見られる絵になったところで、
その曲線で元の画像を補正して、書き出すとかできないかと思っています。
(これまで補正曲線に角度をパラメータにした円弧を使っていました。歪みのある
写真を球面の内側に投影していた。)
835 :
デフォルトの名無しさん :05/01/16 03:06:59
>>835 サンプル掲載の URL のご紹介有難うございます。
2つ落として来て、xx.dsw をクリックしてみました。cv.h へのパスが悪くて
コンパイルは出来ていませんが、ソースがありますので、この後更に試します。
カスケードは最もメジャーなテクニックなんでしょか? もっとメジャーなのある?
839 :
デフォルトの名無しさん :05/01/23 08:37:25
>>837 Haar Like Featureのやつ?
俺もわからん誰か解説汁!
>Haar Like Featureのやつ? そう。 Integral Imageとかいうのを使う あれが一番メジャーな方法なのかな? 他にも ガボールフィルター使ったり ヒストグラム使ったり いろいろあるので どれが一番メジャーなのかわからない
841 :
デフォルトの名無しさん :05/01/25 22:49:42
>>840 ヘイ!ベェビー!
特徴抽出と識別機械をごっちゃにしてちゃ不味いぜ!
カスケードブースティングはその名のとおりBoostingを連ねた識別機械だ。
Boostingはマージン最大化に基づく識別機械で、能力の低い識別関数を束ねて一流の仕事をしようって奴さ。
バカを束ねるにゃぁ一苦労さ。奴さん最新のマシンでも学習に数週間かかるって話じゃねーか。
おまえら何歳くらいだ? ここに出入りしてるやつらの年齢層が知りたい
18でつ
844 :
デフォルトの名無しさん :05/01/26 10:56:32
16detu
23のヘタレ院生('A`)
846 :
デフォルトの名無しさん :05/01/26 11:06:22
5さい
847 :
デフォルトの名無しさん :05/01/26 11:10:05
どなたか二枚の画像の差分を抜き出すソフト教えてください。 できればフリーで
pike -e 'Stdio.write_file("result.png", Image.PNG.encode(Image.load("a.jpg") - Image.load("b.bmp")))'
画像の差分って、なんだろ。 画素のRGB値ごとの差分でいいんだろか。 それならImageMagickなり適当な画像編集ソフトでできるのだが。
ハリスオペレータの分かりやすい解説どこかにないですか?
852 :
デフォルトの名無しさん :05/01/26 19:21:45
nurupo
854 :
850 :05/01/26 22:38:29
ありがとう すごい役立ちそう
OpenCV beta3 はMATLABとのインターフェイスがあるけど OpenCV beta4 はない OpenCV beta3 のMATLABとのインターフェイスを そのまま beta4 に持ってきても動かない ってことでいいの? そしてbeta3のユーザーの方が多い?
856 :
デフォルトの名無しさん :05/01/27 12:42:01
>>855 俺beta4。
話し変わるけど、Matlabとのインターフェースって便利?
どんな風に使ってる?
はなしし?
858 :
デフォルトの名無しさん :05/01/27 13:42:54
>>857 「話、変わる」じゃなくて「話し変わる」だから
「はなし」という名詞ではなくて「はなす」の連用形なのでは?
>>859 その仮説が正しいとしても、しっくりこないなぁ
ぬるぽ!
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
||
>>861 は 。 ∧_∧ 良いですね
|| ガッ \ (゚ー゚*)
||________⊂⊂ |
∧ ∧ ∧ ∧ ∧ ∧ | ̄ ̄ ̄ ̄|
( ∧ ∧ ( ∧ ∧ ( ∧ ∧ | |
〜(_( ∧ ∧ __( ∧ ∧__( ∧ ∧ ̄ ̄ ̄
〜(_( ∧ ∧_( ∧ ∧_( ∧ ∧ は〜い
〜(_( ,,)〜(_( ,,)〜(_( ,,)
〜(___ノ 〜(___ノ 〜(___ノ
863 :
デフォルトの名無しさん :05/01/28 11:14:47
ガッ
○ , ○>
/ ̄'☆ )
>>861 / > /
<遊び方>
☆をダブルクリックするかめはめ波が出るぞ
早く次スレへ移行してくれ
MATLABとのインターフェイス 使ってないけど あれば、いざというときデバックで便利そう
>>863 >☆をダブルクリックするかめはめ波が出るぞ
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
するかめはめ波
867 :
デフォルトの名無しさん :05/01/29 15:31:00
oepnCVでUSBカメラから動画をリアルタイムで抽出して自分の処理してみた んだけど5、frame/sec程度しか速度でなかった。 video for windowsだと20フレームくらいでるんだけど!どなたか原因わかる人 いたら教えてください! Intelのiplだかなんだかいうアーキテクチャに準拠してるからそれがないと 最適化されないというとこ?よくわかりません。 あと最近きになったホンダのインテリジェント・ナイトビジョンシステム搭載の レジェンドって車。あれどうやって人間認識してるんだろう。 遠赤外線カメラつかってるらしいが・・・
>oepnCVでUSBカメラから動画をリアルタイムで抽出して自分の処理してみた >んだけど
自分の処理って所が気になります。
俺には俺がいれば・・・な
871 :
デフォルトの名無しさん :05/01/30 09:47:55
>>871 高い閾値を越えた画素を含む島を低い閾値で2値化した画像から抽出するんでね?
2値化後に(大抵は)ラベリングするだろうから、割と簡単に処理できそうだ。
小さなピークを失いたくないときに便利そうだね。
素人だけど 高い閾値で1になった画素の周囲11x11画素を再び低い閾値で2値化するみたいなのはどうなんだろ?
>>873 用途によるんじゃない?
5画素で低い閾値を横切る保証があるなら使えると思う。
そうでない場合、折角低い閾値で得られるはずの輪郭が失われてしまう。
画素値 x 低い閾値 a 高い閾値 b x < a のとき 0 次は x > b になるまで 0 を保持 x > b のとき 1 次は x < a になるまで 1 を保持
ヒステリシス? 著しい方向特性が出ますな。
>>871 なんか面白そうだね、ちょっとやってみたい。
昔、書いた二値化と差分プログラムあるんだけど他に何が必要かな?
>>877 とりあえずまともなプログラムが必要だと思うよ。
879 :
デフォルトの名無しさん :05/01/30 21:25:49
>>867 えーとね。
OpenCVのcvCaptureは元々遅いんです。
なんでかは知らない。
研究用とかちょっと試すにはあれで十分だと思うけど、もっとフレーム数をあげたいんであればDirectShowかVFWを使う以外ない。
24bitDIB形式であれば、IplImageに簡単に変換できるし、IplImageとメモリを共有することもできるよ。
880 :
デフォルトの名無しさん :05/01/30 21:35:34
>>871 それってヒステリシススレッシュホルドとかいうやつ。
解説はそのページにあるとおりだけど、コードはざっとこんな感じ。
int isH = 0;
usnsigned char th_H2L, th_L2H;
th_H2L = 30;
th_L2H = 220;
for (int i = 0; i < width; i++){
if ( isH ){
if (th_H2L > in[x]) {
out[x] = 0;
isH = 0;
} else {
out[x] = 1;
}
} else {
if (th_L2H < in[x]){
out[x] = 1;
isH = 1;
} else {
out[x] = 0;
}
}
}
OpenCVは相当高速だが。
>>881 なぜかキャプチャ部分の関数だけ超低速。
>>880 それは>875ではあるけど>871ではないよね。
>>880 うお!君すごいね! ちょっと二値化改造してつくってみるよ でもプログラム得意じゃないからできるかな・・・・ 何か注意点ある?
>>884 これって2値化のプログラムの閾値の部分を>>880に変えるだけ
でできるんじゃないか?
888 :
デフォルトの名無しさん :05/01/30 22:38:16
>>887 ぜんぜん違うね。
ヒステリシスのプログラムは
>>880 だけど、そのサイトの内容はヒステリシスのとは違うみたい。
ごめん。
>871って何か簡単そうに見えるけど実際にやろうとすると難しいね
890 :
デフォルトの名無しさん :05/01/30 22:47:19
∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧ < > < ぎょぎょぎょぎょぇーーーーーーーーーーーー > < > < > ∨∨∨∨∨∨∨∨∨∨∨\ /∨∨∨∨∨∨∨∨∨∨∨ /:|. | | /:| / .:::| ∨ / :::| | ...:::::| / ::::| i  ̄ ̄⌒゙゙^――/ ::::::::| /_,,___ . _,,,,__,_ :::::::::::\ / ゙^\ヽ.. , /゙ ¨\,.-z ::::::::::\ 「 ● | 》 l| ● ゙》 ミ.. .::::::\ /i,. .,ノ .l| 《 ..|´_ilト ::::::::::\ / \___,,,,,_/ .'″ ^=u,,,,_ v/.. :::::::::::::l! |  ̄ ,,、 i し./::::::::.} | / ,,____ _,/ ̄ \ \ ノ ( ::::::::::| | |.. | /└└└└\../\ \ '~ヽ ::::::::::::::} | .∨.|llllllllllllllllllllllllllllllllllllllll| ::::::::::{ | |.|llllllllllll;/⌒/⌒ 〕 :::::::::::} | |.|lllllllll; ./ . . | ::::::::::[ .| |.|llllll|′ / . | .| :::::::::::| .| |.|llll| | .∧〔 / :::::::::::::/ / }.∧lll | ../ / / :::::::::::::::::\ / /| \┌┌┌┌┌/./ /::: :::::::::::::::::\ ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /::::::::::: ::::::::::\
891 :
デフォルトの名無しさん :05/01/31 00:14:46
>>889 高い閾値で2値化した画像を膨張させて、低い閾値の2値化画像とANDとったらいいんじゃない?
>>891 どこまで膨張させるかどうやって判断するんだよ。
>>872 が書いている通り、島を認識させるしかねぇべさ。
画像処理初心者ですが質問です。
>>891 は素人なんですか?
894 :
デフォルトの名無しさん :05/01/31 03:05:17
895 :
デフォルトの名無しさん :05/01/31 11:42:27
結局どうすれば>871みたいになるんだ? 画像処理かじった程度だからわからん。同時に2つの閾値の使用なんてできるのか? だれか「我こそは!」っと思う人、バカなオレにフローチャートでも書いて説明してくれ('A`)
高閾値2値化→画素が1の座標を得る ↓ 低閾値2値化→島認識→その座標を含む島を有効に
ずれた... orz
899 :
895 :05/01/31 14:11:02
島認識=ラベリング処理 その座標を含む島を有効に=二枚のラベリングされた画像を差分しぬき出す ってことですか?
画像処理初心者ですが質問です。
>>894 も素人なんですか?
902 :
デフォルトの名無しさん :05/01/31 19:17:13
お前ら画像をメモリに格納するのにどんな方法使ってますか? DIBとかIplImageみたいに一次元配列に各行の端っこにパディングつけてやってますか? それとも2次元配列使ってますか? で,そいつらを操作するとき,例えばフィルタのコンボりゅーションなんかではどんな風にコード書きますか? 他人のコードの書き方がl気になるこのごろ。
当然、一次配列
僕もラスタ順の一次元配列
俺はプロだよ。なんでも聞いてくれ。
画像処理初心者ですが質問です。
>>905 ってイタいですか?
>>902 1次元配列でないとダンプリストをにらんでも画像が浮かんでこない。
>>902-908 Javaの2次元配列は1次元配列とは別物だが
Cの2次元配列は1次元配列と本質的に同じ
(ダンプで画像が浮かぶ)
つまりCならどっち使っても良い
私は一次元配列で確保した領域に画像を入れて、処理するときはポインタを細工して二次元として扱う。 座標が問題にならない変換などは一次元でいいけど、暈かし、微分、ラベリングなどのときは二次元の方が楽じゃん。 #つーことで、例の2重閾値を試してみたいが暇がない……
911 :
デフォルトの名無しさん :05/02/01 10:08:07
Cだと多次元配列が本質的に1次元配列だから1次元配列で確保するわけですね。 ところで、カラー画像を扱う場合RGBRGB・・・という風にしますか?それともプレーンで扱いますか?
>>911 適材適所。いっそ、32ビット整数に放り込むこともしばしば。
樽型歪曲補正でいろいろ聞いたものですが、 補正をやっていると、極端な場合、糸巻きになって、データが大きくなって preview pane へ StretchDIBits() で表示できなくなります。 出ないときは見たら分かるから、そのまま放置にしようか、何か警告を出す か、悩んでいます。警告を出すには、出てないことを検出しなければならな いのですが、GetDIBits() で中身を取って色数を見る他に方法を思いつき ません。(47 MB 超えると無視されるみたい。jpeg -> 24 bit color bmp にして補正すると、ちょっとした写真はこれになります) 本来の画像処理から外れることですが、ご助言がありましたらお教え下さい。
警告ではダサいので表示用のデータを別途作ったら? でっかいモニタでも一桁MBで足り
915 :
デフォルトの名無しさん :05/02/01 13:00:27
>>913 ?
補正後の画像サイズが大きくなってBMPで扱える大きさを越えるって事?
レス感謝。
>>915 そう。元が 2240x1488 で、四隅をビューと引っ張って意地悪すると3倍以上に
大きくなり、24 bit color だと、すごいことになる。意地悪しなきゃ、通常
いいんですが。(メモリが少なきゃ、そこではねるんですが)
>>914 ダサいですよねえ。なにがなんでも出しますか。
>>916 入力と出力を同じ解像度にするだけでいいんじゃないの。
引っ張ってはみ出た分は捨てるだけ。
あるいは、解像度の上限を決めて、そこからはみ出た分を捨てるようにするとか。
>>917 どうも有難うございます。
ぐぐって、いろんな例を見ると、アメーバ様の足も出ているので、残すことにした
んですが、こんなハメになった。
チェックボックスで「周辺省略」とか付けて、チェックされていれば、有効範囲を
選ぶようにはしています。(速度の観点から)縦横のサイズもそれぞれ元の何倍まで
許すか指定可能にしています。作成する bmp の biHeight, biWidth を制限して
はみ出すなら pixel データを書きこまないだけですが。
919 :
デフォルトの名無しさん :05/02/02 01:17:28
BMPって最大サイズっていくつ?
OSやビデオカードに依存。
>>918 本題とは関係ないが「はみ出すなら pixel データを書きこまない」って表現が気になるなぁ。
入力の各画素について、変換先の座標を求めて、そこに書き込む、
なんていう初心者にありがちな、ダメプログラムになってそうな気がする。
逆にしないと隙間が…
>>920 仕様上だったりして。
幅と高さはint型だから、少なくともINT_MAX×INT_MAX以下だな。
>>921 >>...初心者にありがちな、ダメプログラムになってそうな...
するどい! しかし忘れたけど、なんかのマネです。
>>922 そう。普通、元の座標から補正先の座標へ投影して、補間しているようだけど、
私は、投影曲面の断面曲線から元の座標を求めて、RGB を持って来るようにした。
普通、補間しているところはボーとした画像になるけど、私のは同じ RGB が
(今のところ)並び、縞に近い。(絵をプリントしたゴムのシートを引っ張った
イメージ)
>>920 ,
>>923 表示しようとしているデータは大きいのですが、表示 pane は 320 x 240 位
なんですよね。
>>924 >普通、元の座標から補正先の座標へ投影して、補間しているようだけど、
えーと、そういうプログラムは皆あまり書かないと思う。
普通は逆射影を考えて、かつエイリアシングしないように適切に補完する。
あえてもとの絵のピクセルの矩形感をそのまま変形したいなら、
エイリアスをそのまま残してもいいけど・・・
926 :
デフォルトの名無しさん :05/02/02 15:12:08
画像処理とは違うが 他に妥当なスレがなかったのでスルーしてもかまわないです。 画像データ(形式不明)を解析したいんですが、 解説サイトとか探せません。 どこかあれば誘導してください
927 :
デフォルトの名無しさん :05/02/02 15:21:16
質問なんですが、Photoshopで画像のラベリング、周囲長、面積、円形度 って求めることできるんですかね? できるなら買おうかと思ってるんですが・・・・・ また求めることができるソフト知ってたら教えてくれない?
解析っていうのは何の形式か知りたいということ? 適当なUNIX系のOSで、fileとかしてみるとか。
いえ、ゲームとかで独自形式(?)で保存されているデータです。 中身がbmpとかならば見えるんですが、susieプラグインとか作っている人は どのように解析しているのかな?ということです。
本当に独自ならお手上げかな。 大抵は、既存のフォーマットに簡単な変換掛けるとか圧縮するとかしてると思うのだけど。 プラグ員作っている人は内部情報を得たかデバッガで解析しているんじゃないだろか。
逆汗してあやしいところぶっこ抜いてブラックボックスのままコピペしてるらしいよ 俺はバイナリエディタで少しずつファイルを書き換えてゲームを起動 を繰り返して画像の崩れ方から推測してたけど効率悪すぎるね
>>927 (・3・)< 自分でプラグイン書けばできるよ
933 :
デフォルトの名無しさん :05/02/02 17:53:32
>927 そんなことできたらわざわざPhotoshop買わないって。 C言語で作ります
(´-`).。oO(できなかったら買うのか?)
>>926 project fao とかのタイトルのサイトで、ゲームのものをいじっている。
はずれなら、ごめん。
937 :
デフォルトの名無しさん :05/02/02 20:33:02
>>927 ありがとう、確かに高い・・・・これはダメだ・・・
フリーは・・・英語できる人ってすごいよね _/ ̄|○
939 :
デフォルトの名無しさん :05/02/02 20:48:12
>>938 このサイトはなかなか良いサイトだね。
パクらせてもらおう。
>>940 ちゃんと動いたか教えて。
コピペで動くのかな?
周囲長ってこういうことか。これなら書けるばい。
>>925 なにやっているか、まだわかっていないのだけれど、引数に interpolate などと
あると、ああ、埋めていると早とちりしているのですが、
OpenCV\cv\src\cvUndistort.cpp
で、interpolate が非ゼロなら dst[] を埋めているのは、お説のようなことを
やっているのでしょうか。
>>943 周囲長さを知らない奴がこのスレにいたのか……
あ、バカにしているわけではないです。
このスレの住人の多様さに驚いたという意味です。
946 :
デフォルトの名無しさん :05/02/04 16:10:16
輪郭線追跡のC言語ソースどこか、参考にするとこないですか?
948 :
デフォルトの名無しさん :05/02/05 16:42:45
贋乳の見破り方がわかりません.
まだ揉み足りんな。
950 :
デフォルトの名無しさん :05/02/06 10:38:53
練習台がおらんとです・・
952 :
デフォルトの名無しさん :05/02/06 16:25:03
最近、USBカメラを買ってきてリアルタイム画像処理をした結果を 人工知能に食わせて私のPCを新種の生命体にしたいという妄想に 取り付かれています。「あ、聴覚としてのマイクと、発声器官としての スピーカーも必要か」とか、やる気満々で思考している自分が ちょっぴり怖いです。うふふふふふふふふふふふふふふふふふふふふふふふふふふふ。 で、とりあえず調べるだけ調べてみることにしました。 その結果、USBカメラとDirectShowの知識が必要だということ、画像処理を するためには行列に関する知識が必要だということ、WEBサイトと書籍などを 参考にすると良いことなどを知りました。そこまでは分かったのですが、 私はどっちかというとC++よりJavaのほうが得意です(C++は書けるけど、 あんまり邪悪にお金を貢ぎたくはないのです)。 Javaでカメラを操作するのは難しいのでしょうか? 画像処理にはC++を使うのが普通なんでしょうか?
邪悪って何?
モビルスーツ。
>>954 マイクロソフトってこと?
VCがいやならBCCつかったら?
>>955 やっぱり基本はC++ですか。。。BCCで頑張ります。。。
>>956 マイクロソフトに貢ぐのが嫌だったら、先ずはWindowsを捨ててLinuxでも使ったら?
#その方が手頃なライブラリを利用できそうだし。
どうせ妄想で終わると思われ
>>957 昔LinuxマシンからUSB接続の安物のプリンタを使おうとしたのですが、
ドライバがクソだったらしく変なふうにしか印刷できませんでした。
確かにLinuxには優良なライブラリがあるのでしょうが、ドライバが存在する
ハードウェアを選ぶ、ということになってしまうかもしれず、かえって
面倒になってしまうような気がしました。
日本語の参考資料も少ないみたいですし。
>>959 >日本語の参考資料も少ないみたいですし。
この時点で何かおかしい気もするが。
コンピュータの世界ではアメリカがトップに立っているんだから
英語の資料も読めるようにしておくのが常識では?
プリンタは日本製なんですけど・・・
962 :
デフォルトの名無しさん :05/02/06 17:19:36
>959 952の方の書き込みかな。だとすると、 LINUXのUSBドライバを自分で書いてしまうくらいの気概が ないと、952の方も怪しいのでは。 けっこう精神論なんだけれど、困難さの度合いからいうと そうなりますね。
>>960 英語圏の人はが書いた参考資料だと、英語で質問しないといけませんよね?
英語は読めるけど書けない私にとって、英語の参考資料はマイナス要素です。
>>961 プリンタは日本製でしたが、ドライバは英語圏で書かれて無料・無償で
配布されているものだったのです。(よく分かっていなかった自分が悪いのですが、
USBカメラでこれと同じことが起こるのではないかと思うと、あんまりLinuxは
使いたくありません)
目的はLinuxではなくて、USBカメラを利用してPCに目をくっつけることです。
ゆくゆくは車輪で走らせて、アームで道具を使わせて、人類を(ry
>>963 君あまりできなさそうだし途中で挫折すると思うよ。
なんでLinux使おうとしてるの?
>>964 大丈夫です!私は逆境になるほど燃えるタイプなのです。
「できなさそう」というあなたの直感はハズレるのです。
私の生き様を目に焼き付けるがいいです。
とりあえず規格に準拠したPCカメラモードを備えたUSBカメラを買います。
そしてハイエナのよーにWEBを這い回って発見した以下の
サンプルに従ってえぐりこむよーに画像処理するのです!
://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap10/cap10.cpp
>>966 レスの一句一言からだめっぽさがにじみだしてますね
離散ウェーブレット変換の話はここでしてもよかでしょうか・・・
一家離散したばかりの俺の前でそんな話はやめてくれ
二次元離散フーリエ変換の話もどうよ?
>>973 あんな簡単な理論たいした話にならんだろ
ウェーブレットも大した理論じゃないけどな
976 :
デフォルトの名無しさん :05/02/06 23:54:43
画像処理には理論なんて無いけどな
977 :
デフォルトの名無しさん :05/02/07 00:15:34
質問してもよろしいですか???
質問してもいいのは俺だけ。
>>979 おもしろいと思ってるの?
全く笑えないんだけど。
早く質問しる
983 :
977 :05/02/07 05:35:48
ぶれた静止画像を処理してぶれていない画像に戻したいんですけどやっぱりフーリエ変換を 使わないとできないですか?他の方法はないのですか?と思いました。
遺伝的アルゴリズムでオペレータを進化させてがんばる
985 :
デフォルトの名無しさん :05/02/07 07:30:44
5枚複製を作って上下左右に少しのbitずらしてxor
986 :
977 :05/02/07 07:52:37
ありがとうございます。5枚複製を作成して上下左右に少しだけずらす方法は できそうです。ちょっとやってみることにします。
988 :
デフォルトの名無しさん :05/02/07 16:22:05
>>983 ,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; ブラインドデコンボリューション・・・
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; 最尤推定・・・
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなこと考えていた時期が
~''戈ヽ `二´ r'´:::. `! 俺にもありました
989 :
デフォルトの名無しさん :05/02/08 09:56:19
ガウアシアンフィルターについてご存知の方がいらしたら教えて下さい。 具体的なソースがわるかと助かるのですが。 よろしくお願いします。
`д´)そんなもん わるか!
ガウアシアンでググって出てこないんなら、ガウシアンでググれ
>>992 ブレってことだから、ブレの方向を求めてその方向にずらせばよさそうじゃない?
次スレは?あったっけ? 俺立てられない
サンクス
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。