プログラミングで画像を分割する方法

このQ&Aのポイント
  • プログラミングで画像を分割する方法について解説します。
  • godotというゲームエンジンを使用して、画像を二次元配列で細かいブロックに分割する方法を紹介します。
  • 分割した画像をモザイク画として作成することも可能です。
回答を見る
  • ベストアンサー

1枚の画像をプログラミングで分割する

このようなモザイク画をプログラミングで作るにはどうしたらいいんでしょうか? https://docs.gimp.org/2.8/ja/plug-in-mosaic.html 一枚の絵を二次元配列で細かいブロックに分割したいです。 以下の図では四角形1つ、三角形2つ、五角形1つに分割しています。 グリッドが見えると思いますが、この二次元配列のグリッドを選択することで、図形の大まかは配置は決定出来ますよね。 グリッドを4つ選択したら、その4辺が頂点になるわけです。その頂点のうち2つを統合すれば三角形には出来ますよね。 godotというゲームエンジンで作ろうかと思います。 このようなロジックをなんというんでしょうか?

この投稿のマルチメディアは削除されているためご覧いただけません。

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

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

> このようなモザイク画をプログラミングで作るにはどうしたらいいんでしょうか? 画像や指定してるパラメータの感じから、 / \_/ \_/ \ \_/ \_/ \_/ / \_/ \_/ \ \_/ \_/ \_/ / \_/ \_/ \ \_/ \_/ \_/ な感じの六角形で分割するのを前提に、六角形の頂点位置をランダムに調整とか。 タイルのサイズは、初期配置の六角形のサイズ タイル高は、タイルの凹凸の影のサイズ タイル間隔は、タイルの間の隙間 タイル均整度は、ランダムの具合、0にすると上の六角形になるかも 光の方向は印影つける方向 色の種類は不明 とか。 -- > 一枚の絵を二次元配列で細かいブロックに分割したいです。 二次元の次元は何と何なの? ブロックに連番振った番号が配列の引数になるなら、それで分割は出来ちゃってるけど。 ブロックの頂点の座標とかが入るなら、配列だと最大の多角形の頂点数を決めとかなきゃならないけど、実際には三角形ばっかりなら配列の領域の使い方の効率が良くないかも。 > 以下の図では四角形1つ、三角形2つ、五角形1つに分割しています。 五角形が分からない。台形の間違い? グリッドってのは格子の事ですが、グリッドの何を選択するの? 格子の交点の点?格子の四角形? > グリッドを4つ選択したら、その4辺が頂点になるわけです。 辺が頂点になるって話で、もう何言ってるか分からないです。 > このようなロジックをなんというんでしょうか? どのロジック? 元の画像を加工するって話なら、画像加工とかフィルターとか? 画像を細かい領域に分割するのなら、決まった言い方がある気もしませんが、細分化とか、クラスタリングとか、単に分割とか? 分割した領域を1台のPCで逐次処理するんでなくて、領域ごとに複数のPCとかで処理するなら、分散処理とか、並列処理とか?

inudaisukidesu
質問者

補足

すみません、色々説明不足だったし、添付画像も削除しちゃいました。ミスです。

関連するQ&A

  • shade7がバグります

    shade7 basicを購入し、ノートパソコン(FMV-BIBLO NB18C)ではつらいかなと思いつつ、動作環境は一応満たしていたので使ってみました。 ところが、単純な図形を2つほど描くと3次元カーソルが反応しなくなり、図形を選択する・もう1つ図形を描く、といった動作ができなくなります。 しかもグリッド上では描けてないのに、レンダリング上ではちゃんと図形が存在してます。 これはパソコンで処理しきれてないって事なのでしょうか?分かる方教えて下さい。 ちなみにパソコンのメモリなどはいじってないので256MB、OSはwindowsXPです。 どうぞよろしくお願いします。

  • ドロネー三角形のプログラム

    二次元上にある点群を読み込み、ドロネー三角形を作成したいのですが、紙の上で絵を描いて考えるのと、プログラム上で考えるのとではまったく違うことに気づき、初っ端から手が止まっています。 点群を入れる大きな三角形は作成しました。 struct coo // 座標の構造体 { float x; float y; } struct tri     // 頂点を入れる構造体 { struct coo top[3]; } main (){ float **prj; // ここに点群がある float M_prj[3][2];  // 点群を入れる大きな三角形の3つの頂点 int Q;        // 読み込んだ頂点が他の三角形の外接円の中に含まれているか判断する struct tri triangle[100];     // 三角形をを入れる構造体 // まず、大きな三角形を三角形の配列(triangle)に入れる for(i=0; i<3; i++){ triangle[0].top[i].x = M_prj[i][0]; triangle[0].top[i].y = M_prj[i][1]; } // 外接円の中に点Pを含むものを探す Q = hantei; // 含むなら分割する if(Q > 0){ } } というように続いていくと思うのですが。。。 ドロネー三角形については理解しているつもりですが、プログラムになると全くです。そして、プログラミングは初心者です。 ここから先、どのように考えていけばよいでしょうか。

  • 私の考えについて意見してほしいのですが。

    特に哲学について大学などで学んだことは全くないのですが(経営学部)、自分の身体操作技術論の発展過程で、東洋武術的身体論に、釈迦の至った「悟り」と最近の国際的なマルクス論の展開とに共通性を感じています。 具体的に 1 物事全般における三次元性 人の物事に対する視点や認識は二次元的であり、平面的である。また、それはスポットを当てたかのような範囲的な狭さも含んでいる。 2 釈迦の「悟り」と身体操作技術的観点から見た身体論 身体操作において身体の分割を考えた場合。それを分割していき中国武術(意拳)の王郷齋が至った細胞レベルまでの意識的身体分割そしてその統合。その延長線上に釈迦の「悟り」、(私の解釈では)宇宙との同化であり、具体的には素粒子レベルでの意識的身体分割によって宇宙という存在と釈迦自身との差異がなくなったのではないか。そして統合=宇宙との同化を「修行」(=おそらくは呼吸法やヨガ的なもの)を進め、「宇宙=自身」というものを「体感」し得た。 3 最近の国際的なマルクス論の展開 身体の分割=分業であること。そして、資本主義(ネグリの帝国)において内部でうごめくグローバルとローカルの二元的対立は、=輪廻。最終的な「共産主義」(でなくても現在の資本主義という枠からパラダイムシフトしたポスト資本主義社会)とは釈迦の至った輪廻から抜け出ること。 (今のところ)以上から 4 我々は宇宙(=自然=神)の一端 その一端である限り現実にそれを超越することはできない。すなわち終局的には、宇宙との同化。「宇宙との同化」をピラミッドの頂点としたとき、人間の行動や思想はそこへいたるプロセスに過ぎない(中でうごめく物事について人間というフィルターを通してみたときの是非はあるが)。 自分でもまだ淀んだイメージなので非常にわかりにくいと思いますが、こういった考えに意見してください。

  • VBAで2つのBOOKのセル範囲を比較

    異なるBOOKのセル範囲のデータを照らし合わせ、不一致があるか確認したいのです。 その際、セル範囲をあらかじめVBAで決め打ちするのではなく、画面上で選択したいので、Application.Inputboxを使おうと思います。 以下のコードで一応はできたのですが、これを使うためには、画面を分割して2つのBOOKの該当箇所を「並べて比較」で並べて表示させておかなければ片方のシートしか選択することができません。 選択範囲が小さい場合は並べて表示させても問題ないのですが、かなり大きな範囲を選択する場合は、並べて表示で画面が半分にされると選択するのが大変です。 まず比較元シートを画面全体に表示して範囲選択し、次に比較先を表示して選択できるようにする方法があばとても作業が楽になります。 ご教示いただければ幸いです。 Sub 選択範囲データ比較() '2019/05/16   Dim myV, myW   Dim buf(1) As Range   Dim i As Long, m As Long, j As Long      Set buf(0) = Application.InputBox(Prompt:="セルを選択してください。", Type:=8)   myV = buf(0).Value   Set buf(1) = Application.InputBox(Prompt:="比較するセルを選択してください。", Type:=8)   myW = buf(1).Value   If UBound(myV, 1) <> UBound(myW, 1) Then     MsgBox "配列 1次元要素数が異なります。", vbCritical     Exit Sub   End If   If UBound(myV, 2) <> UBound(myW, 2) Then     MsgBox "配列 2次元要素数が異なります。", vbCritical     Exit Sub   End If   For i = LBound(myV, 1) To UBound(myW, 1)     For n = LBound(myV, 2) To UBound(myW, 2)       If myV(i, n) <> myW(i, n) Then         j = j + 1       End If     Next n   Next i   If j > 0 Then     MsgBox j & "個、相違があります。", vbCritical   Else     MsgBox "同一です。" _     & vbCrLf & "" _     & vbCrLf & "1次元:" & UBound(myV, 1) & "個" _     & vbCrLf & "2次元:" & UBound(myV, 2) & "個"   End If End Sub

  • 画像を分割して並べる?

    ウェブサイトで、見かけるのですが、大きな画像を いくつかに分割して、複数の小さな画像がうまく配置され、 1つの大きな画像になっているものがあります。 なぜ、そのようなことをしているのでしょうか? 私もホームページを作っているのですが、 大きな画像の場合は、こうゆうことをしたほうが良いのでしょうか? そして、その方法ですが、 1:(分割の方法) 画像を、マウスでの範囲選択で、いくつもに分割すれば、微量のズレも出るはずです。 2:(表示の方法) 分割できたとして、サイトに表示するには、 テーブルタグかなにかで、並べるのでしょうか? 解説と共に、1と2の方法をレクチャーしてください。

    • ベストアンサー
    • HTML
  • 画像の分割

    ホームページビルダーでWEBページを作ってますが、 画像を分割して、一部にリンクを貼ってるページを見かけますが、どうやってるんでしょうか。 特別なソフトがいるんでしょうか?

  • 画像を分割するのはなぜ?

    よくトップページのバナーや写真のページで、1枚の画像を数枚に分割して表示させているページを見るのですが、これはどういった理由(メリット)があるのでしょうか? 画像を分割した方が読み込みが早いのでしょうか? また画像を分割するのは、PhotoShopあたりでやっているのでしょうか? 謎です...?

  • 画像の分割

    サイトのページなどで一見大きそうに見える画像が じつは幾つかに分割されていることは多いですよね。 ああすることのはメリットあるのですか? 「そのまま載せるより読み込みが速い」と聞いたこともあるのですが、今それほどスピードに問題は感じない時代ですし… サイトを作る時やはり分割した方が良いのでしょうか?

    • ベストアンサー
    • HTML
  • 分割した画像について

    よろしくお願いいたします。 大きな画像をHPにアップしたいので、4つに切ろうと 思っています。見えないテーブルの中にその画像を並べようと 思うのですが、見る人によって形が崩れてしまわないかが 心配です(例えば右上の画像が押し出されて下に来てしまうなど) そこで、こういう崩れを防ぐにはどんなことに気をつけたら よいでしょうか?また、画像をいれるテーブルには大きさの余裕を もたせた方がいいでしょうか?また、崩れを防ぐタグなどありましたら お教えくださいませ。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 画像を分割したい

    画像を自分の好きなサイズに分けたいのですがどのようにしたらいいのでしょうか?? ソフトはフォトショップエレメンツを使用しています。