メッシュの統計処理についての質問

このQ&Aのポイント
  • メッシュの統計処理についての質問です。プログラムのアルゴリズムを書く方法を教えてください。
  • メッシュのブロックごとのヒストグラムを作成したいと考えています。アルゴリズムのフローを教えてください。
  • メッシュのブロックごとにヒストグラムを作成するアルゴリズムの書き方について質問です。アドバイスをいただけないでしょうか?
回答を見る
  • ベストアンサー

メッシュの統計処理

プログラムのアルゴリズムについての質問です。 下のようなメッシュがあり、 □は0 ■は各値(1~6) □□□□□□□□□□□□□■□□□□□□ □□■■■□□□□□□□■■■□□□□□ □□■■■□□■□■□□■■■□□□□□ □□■■■□□■■■□□□■□□□□□□ □□□□□□□■■■□□□□□□□□□□ □□□□□□□□□□□□□□□□□□□□ □□□□□□□■■□□□□□□□□□□□ □□□□□□□■■□□□□□□□□□□□ □□■■□□□□□□□□■□□□□□□□ □□■■■□□□□□□■■■□□□□□□ □□■■□□□□□□□■■■□□□□□□ □□□□□□□□□□□■□■□□□□□□ □□□□□□□□□□□□□□□□□□□□ □□□□□□□□□□□□□□□□□□□□ 各■を一まとまりのブロックと考えて それぞれのブロックごとのヒストグラムを作成したいと考えています。 どのようにアルゴリズム(プログラムのフロー)を書いていいか分りません。 なにかよいアドバイスをいただけないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

   訂正。 void func1(int map[][20], int hist[], int i, int j) { if(i < 0 || 13 < i || j < 0 || 19 < j) return; if(map[i][j] <= 0) return; hist[map[i][j] - 1] ++; map[i][j] *= -1; func1(map, hist, i + 1, j); func1(map, hist, i, j - 1); func1(map, hist, i - 1, j); func1(map, hist, i, j + 1); return; }  

hamu-september
質問者

お礼

わざわざプログラムまで書いてもらって、 ありがとうございます。 無事に解決することができました。

その他の回答 (1)

回答No.1

   こんな感じ? #include <stdio.h> void print(int hist[], int i, int j) { int k, l; printf("(%d, %d)\n", i + 1, j + 1); for(k = 0; k < 6; k ++){ printf("%d|", k + 1); for(l = 0; l < hist[k]; l ++) putchar('*'); putchar('\n'); } } void func1(int map[][20], int hist[], int i, int j) { if(i < 0 || 13 < i || j < 0 || 19 < j) return; hist[map[i][j] - 1] ++; map[i][j] *= -1; if(map[i + 1][j] > 0) func1(map, hist, i + 1, j); if(map[i][j - 1] > 0) func1(map, hist, i, j - 1); if(map[i - 1][j] > 0) func1(map, hist, i - 1, j); if(map[i][j + 1] > 0) func1(map, hist, i, j + 1); return; } void func0(int map[][20]) { int i, j; for(i = 0; i < 14; i ++){ for(j = 0; j < 20; j ++){ if(map[i][j] > 0){ int hist[6] = {0}; func1(map, hist, i, j); print(hist, i, j); } } } } int main(void) { int map[14][20] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, }, {0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, }, {0, 0, 4, 5, 6, 0, 0, 1, 0, 2, 0, 0, 5, 6, 1, 0, 0, 0, 0, 0, }, {0, 0, 1, 2, 3, 0, 0, 3, 4, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 6, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 0, 0, 0, 0, 0, }, {0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 5, 6, 1, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }}; func0(map); return 0; }  

関連するQ&A

  • ヒストグラム平均化のアルゴリズム

    画像をヒストグラム平均化処理するプログラムを 作成したいのですが,具体的なアルゴリズムが わかりません.どなたか,教えてください.

  • ShapeFileからメッシュデータを作る

    地理情報システム(GIS)間で標準として用いられる「ShapeFile」のファイル形式があるかと思います。 (地理情報システム (GIS) のソフトウェアに強い、  ESRI(Environmental Systems Research Institute, Inc.)という会社が作ったデータ形式らしいですが) これをメッシュデータに変換したいです。 そのために、まずはShapeFileがどんなものなのかを確認しようと、 エディタにて開けるかなと思って開いたのですが どうやらテキストデータではなさそうでした。 ◆質問  (1)ShapeFile のデータにアクセスするにはどうすればよいのでしょうか?  (※テキスト形式のファイルではなかったわけなので、    なんらかのAPIをコールして値のGETができるのでしょうか)  (2)ShapeFile データからメッシュデータを作成したいシチュエーションは   結構ありそうですが   何か有名なアルゴリズムやフリーソフトはありますでしょうか?   (※自前で、難しいアルゴリズムを作らなければならないでしょうか?) 宜しくお願い致します。

  • メッシュコードからマップを作成するマクロ(VBA)

    Excelのセルを一つの三次メッシュとして三次メッシュコードをもとに日本全国のマップを作成したいと思っています。 三次メッシュコードを読み込んでマップを作成するプログラムを誰かお持ちでないでしょうか。 よろしくお願いします。

  • メッシュサイズについて

    CATIA v5 構造解析ソフトを使用しています。 形状変更をしたモデルで再解析を行った時に、一部応力が高くなる 結果になりました。 動きや、他の部位の応力を確認しても、応力が上がる要素は見つからない ため、メッシュ形状による応力の拾い方によるものでないかと思い、 問題の部位だけメッシュを細かくして比較をしようと思っているのですが・・・ メッシュサイズは同じにして比較しているのですが、自動メッシュのせいか、見た目的にメッシュの切れ方が違うように見えたためです。 そこで質問です。4面体2次メッシュでメッシュを作成しているのですが、 形状Rや肉厚によって、適正なメッシュのサイズというのはあるのでしょうか? 計算がまわせるレベルで、なるべく細かく形状を再現できるように・・・ といつもアバウトにメッシュを切ってしまっています。 メッシュを細かくすると最大応力値が変わるので、どのサイズで比較したらいいのか、いつも考えてしまいます。 素人の質問で申し訳ありません。ご指導よろしくお願い致します。

    • 締切済み
    • CAE
  • メッシュの靴

    女性ですが、男性の方が詳しいかと思い、こちらで質問いたします。 春夏用に、白のメッシュのレザーシューズを購入したいと考えているのですが、今までメッシュを買ったことがないのでアドバイスお願いします。 1. 耐久性は悪い? ボッテガも、素敵なブランドですがメッシュがゆえに、高級ですが耐久性は悪い、と聞いたことがあります。靴はもっと消耗が早いと思うのですが、ワンシーズンしか履けませんか? 手入れも好きなので、今持っている靴は、余裕で3年は持ちますが、メッシュは厳しいでしょうか。 2. 白のメッシュだとハゲが目立つ? 細いメッシュのフチからどうしてもはげてきてしまうように思うのですが、心配ないでしょうか。 3. 手入れは、白のシュークリームを使えば、汚れてもそれなりに復活する? 手入れをすれば普通のスムースレザーのように扱えるなら、安心なのですが・・・ よろしくお願いします!

  • 画像の2値化について

    グレー画像を微分ヒストグラムを用いて2値化する方法を教えてください。 プログラムが書ける程度の詳しさでアルゴリズムの説明をお願いします。

  • 世界測地系と日本測地系のメッシュについて

    測地系に関する質問です。 メッシュ番号とそのメッシュに属するデータが格納されたファイルを入手したので、世界測地系のメッシュデータにそのデータを割り当ててGISのデータを作成していました。ところが後になって、この入手したデータが日本測地系のメッシュに基づいて作成されたものであることがわかりました。なので現在は日本測地系のメッシュ番号に基づいて作成されたデータを、世界測地系の同メッシュ番号に割り当ててデータを作成した状態になっています。 この場合作成方法に問題はあるのか教えて頂きたいです。 自分の考えでは、一つの測地系の地図上に異なる二つの測地系のメッシュを描写してしまうとズレが生じるけれど、日本測地系の地図上に描写した日本測地系のメッシュと、世界測地系の地図上に描写した世界測地系のメッシュでは位置は変わらない?ので問題ないのではないかと考えているのですが・・・。

  • Illustrator グラデーションメッシュを好きな方向に引く?

    こんにちは。過去の質問を検索したのですが似た問題が見つからなかったので質問させていただきます。 以前からグラデーションメッシュを勉強したいと思っているのですが、なかなか何がどうなっているのかわからず、いろいろ自分で試してみても思ったようには仕上がりません。そこで、いろいろなサイトを検索してみたのですが、なぜみんな思ったとおりの方向にグラデーションメッシュのラインが引けているのか不思議になりました。本来の形が四角や丸だったら、割と簡単に網目状のメッシュが作成されますが、複雑な形を使うと、めちゃめちゃのメッシュができてしまいますよね?後、四角の形に斜め上にメッシュをかける、など、思った方向にメッシュを書ける方法というのはあるのでしょうか?そのオブジェクトのアウトラインと重なっているメッシュポイントをドラッグすると、表のオブジェクトの形ごと変わってしまうのですが… どなたか教えていただけたら幸いです。ありがとうございます。

  • 最適なメッシュ分割方法

    こんにちわ。今回はメッシュ切りについて質問させて もらいます。二次元要素に対してのメッシュ形状には三角形、四角形、三次元要素に対しては四面体、五面体、六面体とありますが、それぞれをどう使い分けしたら良いのかわかりません・・・。それぞれの特性はどのようになるのでしょうか?要素を小さくすればするほど精度は上がるとは聞いた事があるのですが・・・。ちなみに私が使っているソフトでは要素形状として三角形か四角形を選択し、サイズを決め自動メッシュさせるようになります。アドバイスお願い致します。

    • 締切済み
    • CAE
  • メッシュの料金

    以前ここで自分で青のメッシュを入れることについて質問したのですが、奇麗に仕上げる&痛みを和らげるために美容院で染めてもらうことにしました。 結局、灰青のメッシュを入れてもらう予定です。で、美容院ともなると値段がすごく気になりますが…メッシュにかかる料金についていまいちよくわかりません。メッシュというのはどういうコース(?)にあてはまるのでしょうか…「ハイライト」「ダブルプロセス」なんかは近い気がしますが。チラシに載っているコースでは安いもので1200円程度、高いもので16000円程度でした(髪の長さなどの説明はありません)料金はお店によるということは分かるのですが、↑の値段から予想はできないものでしょうか。 ヘアケア用語に全く自信がなく、何も知らないまま美容院に乗り込むのが凄く怖いです(汗)いくらでも払えるわけではないですし…灰青だと茶より高くつくと思うので心配です。 アドバイス&体験談求みます(>_<) よろしくおねがいします!