• 締切済み

黒の塊の数え方

■■□□■■■■ □■■■■□□□ □□□□□□□□ ■□□■■■■■ ■□□■■■■■ ■■□■□■□■ □■□□□■□■ □■□■■■■■ こういうテキストがあったときに ■の塊を数えるプログラムを教えてください このテキストの場合は 黒 = 3になります言語はC#でお願いします できれば解説もお願いします

みんなの回答

noname#208507
noname#208507
回答No.4

「ラベリング」は画像のサイズを縦横ともに2画素増やして、画像を囲むように外側1画素を「境界」で塗りつぶすと、例外処理が不要になるので、ちょっと幸せになれる(かも)。 ラベリングの具体的な方法は、Webを検索するなり、初級の画像処理の教科書を見れば、たくさん見つかるでしょう。

  • honor
  • ベストアンサー率35% (25/71)
回答No.3

画像処理のラベリングですね。 連続した領域に同じ数値を振っていく方法です。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

コード書く気はありませんし、検証もしていませんが… とりあえず…… 基準点を決める。 (0,0)ですかね。 基準点が"■"でなければ移動して新たに基準点を策定し直し。 "■"だったら上下左右の隣接する箇所に"■"があるか判定。 連接箇所に"■"が1つもなければ、塊になっていないぼっちの"■"としてカウントして基準点走査に。 隣接箇所にあったらそちらの隣接部分を基準点その2として、その隣接領域に"■"があるか判定。 って感じで走査…ですかねぇ……。 ん~……int型の二次元配列を用意する。 外周分も含めて[10][10]。 全部-1(未調査領域フラグ)で初期化して、外周部分を0("□"相当)に設定。 [1][1]からスタートで取りあえず1を設定。 先ほどの処理で"□"だったら対応する箇所に0を、"■"だったら基準点その2に移動して該当箇所に1を設定。 隣接区域を調べる際に1だったら調査済み。として調査を続行して、塊の周りにある"□"が確定したら次の基準点(-1)の箇所へ。 新たに"■"が見つかったら次は2をおいて同様の処理で固まりを…… と繰り返していく感じでしょうかねぇ。 マインスイーパーなんかで安全地帯を探すアルゴリズムみたいなモンでしょうか? # 経路探索とは違うよなぁ…。 # ゲームなんかでユニットの移動範囲を検索するアルゴリズムに似て…はいるかなぁ? # 移動距離無限大、進入禁止領域あり。みたいな。 最終的に… 0000000000 0110011110 0011110000 0000000000 0200333330 0200333330 0220303030 0020003030 0020333330 0000000000 って感じになりますかね。(崩れていたら等幅フォントで見てくださいな) で、配列内の最大値が「■の塊の個数」ということに。

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

>このテキストの場合は 黒 = 3になります どこをどう見たら黒=3になるのですか?

関連するQ&A

  • 黒砂糖の塊 何かに使えますか?

    どこかのお土産で、黒砂糖をいただきました。5cm角くらいの小さな塊がたくさんつまったひとふくろ、です。 見た目、何となくお菓子っぽい感じだったのでそのままかじってみましたが、ただの砂糖の塊だったようで、ものすごく甘いだけ。そのままで食すのは無理でした。 母が、お砂糖の代わりとして厚揚げを煮るのに使ってみましたが、何となくいつもより甘いような気がして・・・ 黒砂糖の塊は、普通のお砂糖の代わりとして料理に使う以外に使い道はないのでしょうか?せっかくのお土産の黒砂糖ですので、何か活かせるものに使えたら良いな、と思っております。 何か良いアイディアやレシピをご存知の方いらっしゃいましたら、ぜひ教えていただきたいです。 よろしくお願いします。

  • 黒砂糖の大きい塊を、粉々にしたい。

    黒砂糖を料理に使う時、例えば大さじ1杯とかを計りたいのに 大きな黒砂糖の塊がゴロゴロしていて、スプーンで計れません・・ 普通の白砂糖みたいにサラサラにすることは出来ないでしょうか?? 黒砂糖の塊って結構硬くて、袋の上から指で粉々にしようとしても なかなか粉々になりません・・。 せいぜい大きい塊が半分くらいに割れる程度にしかならないんです。 だから、普段の料理ですごく使いにくいです。 粉々にする良い方法をご存知の方、教えて頂けないでしょうか? 使いたいグラム分だけ、計りではかればいいのかもしれませんが よく使うものなので、やはり出来ればスプーンで計りたいです・・   

  • トランプをバラバラにしたとき、黒カードの固まりの個数は一般に何個?

    トランプをバラバラにしたとき、黒カードの固まりの個数は一般に何個だろうという素朴な疑問が思い浮かび、一般的に考えています。 黒石m個と、白石n個の合計m+n個を任意に並べます。 このとき、黒の固まりの個数を数えます。 たとえば、黒7個と、白4個を、 黒黒白白黒白黒黒黒白黒 のようにならべたとき、黒の固まりの個数は4です。 一般に、黒の固まりの個数がk(1≦k≦m)となるときの確率はどうなるのでしょうか? さらに、期待値はどうなるのでしょうか? 黒 m 個を X1 + X2 + ... + Xk = m  ただし Xi ≧ 1 (i = 1, 2, ... k) というような k 個のグループに分ける場合の数は m-1Ck-1、さらに、白 n 個を一列に並べ、その両端および白と白の間(計 n + 1 ヶ所)から k ヶ所を選んで X1, X2,... Xk の順に黒石を入れる場合の数は n+1Ck。 よって、黒の塊が k 個となる場合の数は、 m-1Ck-1×n+1Ck これを(m+n)!で割れば確率が求まり、さらに期待値が求められるはずなのですがうまくいきません。 期待値は(n+1)m/(n+m)になるようなのですが。

  • 痰に黒っぽい固まりの血が出る。

    今朝出社時、咽に痰が詰まったような気がしたので、吐いてみると、黒っぽい固まりの血が(スプーン一杯程の量)出た。1:00過ぎにも同じ現象がおこった。どんな事になっているのでしょうか??教えてください。 因みに、昨年(2001)7月に、心筋梗塞で心停止し二日半ほど意識不明が続きました。(ステントを入れています)治療を受けていますが、なにか係わりがあるのでしょうか?

  • C言語のテキストファイルの読込み

    必要に迫られてC言語でテキストファイルの読込みを行う プログラムを作成しなければならなくなりました。 whileとfscanfを用いて書式を指定して一行ずつ読込むことができる ということは知っていますが、その際、たとえば読み込むファイルが 20行のテキストファイルだったとして、10行目から読込みを 行いたい場合はどのようにプログラムを書けばいいのでしょうか? なにぶんC言語初心者ですのでよろしくお願いします。

  • 生理中に黒いかたまりが。この正体は!?

    生理2日目で、黒っぽい(チョコレート色)かたまりがでて、これは一体なんだろうってすごく心配です。 血のような液体ではなく吸水しないでぷるんとした形が残っています。乾燥したり硬いわけではなく、どちらかというと腸やゼリー状の弾力のある感じです。 親指第一関節くらいの大きさのかたまりでした。 最近婦人科で「卵巣脳腫」と言われたこともあり心配です。よく「黒っぽいかたまりのようなものがでた」って人がいるみたいなんですけど、 こんなの初めてでびっくりです。 お医者様でもどなたでもいいので教えてください!

  • C言語のプログラム集

    こんにちは。C言語のテキストにはプログラムとその説明が書いていますが、 このC言語のプログラムが多くのっているような本はありますか?本屋さんで探したのですが、プログラムがものすごく多くのっているようなものがなかったので、もしお分かりの方がおられましたが、本の紹介をお願いします。

  • スクリンセーバーの作り方

    c言語でのスクリンセーバーのプログラムを教えてください。 どこから、どうプログラムを考えていいのかさっぱり糸口がつかめません。 実際のスクリンセーバーのプログラム(必要最小限なものでできているもの)を例にして、解説等をしてもらえるとc言語の勉強に有意義なものになります。よろしくお願いします。

  • C言語でTIFファイルを読み込むプログラムを教えてください。

    C言語でTIFファイルを読み込むプログラムを教えてください。 C言語でTIFファイルを読み込むプログラムを組みたいのですが、テキストや参考書、ネットで調べてもよく分かりません。 もしお分かりになるのでしたらプログラムの一連の流れ(ソースプログラムも書いていただけるとなおさら嬉しいです)を教えていただけると助かります><

  • 黒砂糖の割り方教えてください

    沖縄・西表島の黒砂糖の塊をもらったのですが、固くて割れません。のこぎりで切って、切れ目は入るのですが、割れるまではいたりません。塊は50センチ×30センチ×5センチ程度。もらってから1ヶ月ほどたっているので、乾燥してしまったこともあると思います。扱い方を教えてください。