C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 25 を表示中)
■11117 / )  Re[3]: VB.NET)四次元配列を用いての2点間距離計測
□投稿者/ Flowen (2回)-(2007/12/07(Fri) 10:21:05)
2007/12/07(Fri) 10:24:18 編集(投稿者)

みなさん迅速な回答ありがとうございます

No11082 (PATIO さん) に返信
> えーと、実際に扱っている数値を使って試算してみましたか?
> 例えば、32×32ピクセルの画像を考えたとして単純に計算すると32×32×32×32×8となって8388608なんて数値に
> これって8MBになっちゃいます。たった32ピクセル四方の画像で8MBです。
> 後は推して知るべしで画像が大きくなれば、途方も無い数値になるのは当たり前です。
>
> で、本当に全ての計算結果を最後まで取っておく必要があるんでしょうか?
> 部分毎にやるとかできませんか?
部分ごととは、その計算した数値が必要になったとき、ということでよろしいでしょうか?
その計算結果を基にした配列を使って処理を行いたいため、です。
その計算結果を使えないので再検討が急務、ですね・・・

> 少なくとも全てをメモリ上に展開するのは無理だと思うので処理方法を再検討された方が良いと思います。
はい、ご指摘のとおりこのままの処理では実現ができないようなので再検討いたします。


No11085 (Tom Yama さん) に返信
> ■No11081 (Flowen さん) に返信
> >「'System.OutOfMemoryException'のハンドルされていない例外が.exeで発生しました」
> は、メモリ不足エラーです。オーバーフローエラーではありません。
すみません、勉強不足でした^^;
ご指摘ありがとうございます。

>> で、何でわざわざ、2点間の距離を配列に記憶するわけ?
> 必要になったら、その場で、計算すればいいじゃん。
この処理の後、2点間の距離をIndexとした配列を使って処理を行う必要があるからです。
配列に距離を記録しておくことで、1つのループの間に数回、二次式の計算を行うのを避けたかったためです。

No11095 (れい さん) に返信
> 距離と位置の相関関数を求める手法ですね。
> 他の方も言ってますが、距離をすべて配列に保存するのは容量が圧倒的に足りません。
> 速度的にも無駄ですし、情報量的にも無駄ですので、その都度求めるべきです。
はい、処理を随時計算する仕様に変更したいと思います。

> ただでさえ、ハフ変換はメモリを大量に消費します。
> 今回は半径と座標x,yの3つのパラメータがありますので、
> 、パラメータ数の多い(3つ以上)ハフ変換を使う場合、
> メモリ消費を緩和するため、
> 部分的に変換したり、漸近的手法を用いたりといった手法を使います。
> どの手法を用いるかはメモリ消費量の見積もりがなければ判断できません。
> もう一度見積もりからはじめるべきだと思います。
はい、開発環境の見直しからやりたいと思います。


迅速な回答、皆様ありがとうございます、
まとめさせていただきますと、

・メモリ不足エラーであり、配列に数値を保存しておくのは非現実的。再検討の余地あり。
・開発環境から見直し、メモリ消費量を見積もる。
・というか処理方法ダメダメ。もっかいガンガレ。

ということですね・・・がんばります。

また、ご指摘ありがとうございます。
返信 編集キー/


管理者用

- Child Tree -