ねこでじ(Nekodigi)

Nekodigi’s diary

学習中の気づきをまとめています。応援よろしくお願いします

Processing

【Processing】青海波を作る。

成果物 今回は、青海波です。今までは横向き六角形配置しかやったことがなかったのですが、今回は、縦向きだったので非常に勉強になりました。そこまで出来れば後は同心円を並べるだけです。 コード Hemp leafという名前で追加しています。 github.com

【Processing】麻の葉模様を作る。

成果物 今回は、模様シリーズとして麻の葉模様を作ってみました。六角形にも三角形にも見える不思議な模様でしたが、今回は、三角形を一単位として並べています。 コード Hemp leafという名前で追加しています。 github.com

【Processing】六角形の七宝模様を作る。

成果物 六角形(三角形)にすることでぐっと緻密になりました。六角形を描く時にもよく使います。 仕組み 六角形になると並べるのが急に大変になるので、少しでも楽にするために、列ごとに並べるようにしました。 普通の七宝模様についてはこちらをご覧くだ…

【Processing】七宝模様を作る。

成果物 ネタもなくなってきたのでしばらく模様シリーズを続ける予定です。ということで、今回は、七宝模様を作ってみました。 仕組み 四分の一の円弧を二つセットにして、一パーツを作り、それを並べています。ちなみに、P3Dを使うと境目が目立たなくなるの…

【Processing】FFTの最大スペクトルのみをSin波で表現する。

成果物 www.youtube.com どの音が最もよく出ているのかを調べると、波形の特徴がわかりやすいのではということで作ってみました。予想どおり、鉄琴ははっきり同じ周波数が現れました。また、人間の声は鉄琴よりも断然低いという結果がわかりました。周囲のノ…

【Processing】2Dのヒストグラムを作る

成果物 今回は、色相と彩度を示した2Dのヒストグラムを作ってみました。 仕組み 前回のコードを改良し、色相の段階数X彩度の段階数の2Dの配列でカウントしています。 nekodigi.hatenablog.com コード Histogram 2Dという名前で追加しています。 github.com

【Processing】画像のヒストグラムを表示する

成果物 2Dのヒストグラムを作ってみたいと思ったので、その足掛けとして画像のヒストグラムを作ってみました。ここではRGBのヒストグラムを表示していますが、他にも、明るさ、彩度などのヒストグラムも作ることができます。 仕組み 色の段階数と同じ256の配…

【Processing】モルフォロジー変換で、画像の膨張、収縮、輪郭の取得を行う。

成果物 今回は、任意の太さの輪郭の取得が可能なモルフォロジー変換をやってみました。非常にシンプルです。 仕組み 収縮させたいときは、フィルタの範囲が全ての白の時のみ白にし、膨張させたいときは、フィルタの範囲がすべて黒の時に黒にするという仕組み…

【Processing】ラプラシアンブレンドを任意の形にかけられるようにする。

成果物 www.youtube.com 今回は、前回のラプラシアンブレンドを応用して、任意の形にかけられるようにしました。画像サイズの半分の高精細なマスクをかけられるようにしたところが特徴です。非常にうまくいったよかったです。 仕組み 前回は、画像の真ん中で…

【Processing】ラプラシアンブレンドを使って、画像を滑らかで違和感なく合成する。

成果物 普通にぼかして合成したのでは再現できないような、境界部の鮮明さが特徴的です。ただくっつけただけのようにも見えるかもしれませんが、違和感がない部分はしっかりぼかされていることがわかります。 仕組み 前回実装したimage pyramidを使うことで…

【Processing】ガウシアンピラミッド、ラプラシアンピラミッドを実装する。

成果物 www.youtube.com ラプラシアンブレンドをするために、ガウシアンピラミッド、ラプラシアンピラミッドを実装してみました。ガウシアンピラミッドはシンプルにぼかしという感じですが、ラプラシアンピラミッドは、階層が深くなるごとに、強調される情報…

【Processing】似た色をまとめて塗りつぶす、Flood fillを実装する

成果物 バケツアイコンで有名な塗りつぶしを実装してみました。ただ実装しただけでは面白くないので、どのぐらいの許容範囲で塗りつぶすか選べるようにしました。再帰呼び出しが出来なくて焦りましたが、Queueを使うことで解決しました。 仕組み 対象のピク…

【Processing】平均値や中央値を使い、特徴を捉えた二値化を高速で行う。

成果物 平均値 普通に二値化を行うと、画像の明度のバラツキに左右されてしまうのですが、近隣のマスの平均値より大きいかで二値化を行うことで、こんなにもきれいに二値化を行うことができます。 中央値 肉眼では分かりにくい筆跡もきちんととらえられてい…

【Processing】中央値フィルタで色味を保ったままノイズを軽減する。

成果物 OpenCVのチュートリアルを見ていると非常に面白いフィルタを見つけたので実装してみました。ノイズが見事になくなり、元の色味がしっかり取り出せていることがわかります。そのままでも面白いぼかしがかけられるので今後も活用していきたいです。 仕…

【Processing】第一宇宙速度、第二宇宙速度を求める。

成果物 ※単純に回っているわけではなく、物理法則に基づいて動いています。 第一宇宙速度を聞いたことはあったのですが実感がわかなかったので、実装してみました。 仕組み 必要な速度はこちらの数式をもとに求めることができます。 コード Escape velocity…

【Processing】閉管 開管から出る音を再現する

成果物 www.youtube.com 今回は、管を吹いたときに出る音を再現してみました。倍音を加えるととても深みのある音になって面白かったです。ちなみに、音の大きさは1/fになるようにしています。 仕組み この数式をもとにしてsin波を発生させれば完成です。 コ…

【Processing】ドップラー効果を再現する。

成果物 www.youtube.com 今回は、ドップラー効果に従って曲のピッチを変えてみました。マウスだと速度がころころ変わるのでいまいち感じ取ることが難しいですが、きちんとドップラー効果が表れています。 仕組み こちらで紹介されているこの数式を使うと、速…

【Processing】三つ編みを表現する

成果物 今回は、三つ編みを再現してみました。本物の三つ編みのように紐の重なり合いも表現できますが、複雑になり汎用性が欠けるので、BlendMode(ADD)を使って近似的に表現する方法も追加しています。 パスに沿った模様など、美しい曲線を必要とする場面で…

【Processing】スネルの窓を実装する。

成果物 どのように実装するか非常に悩んだのですが、何とか実装しました。全天球の半分を移すような数式を考えました。ただ、説明しきれない部分があり、合っている保証は出来ないので、あくまでお楽しみ程度です。 仕組み スネルの法則に従って、反射後のsi…

【Processing】銀の球体を高速で表示する。

成果物 www.youtube.com レイトレーシングなどに比べてシンプルで高速に銀の球体が表示できています。これで、猫の瞳の光沢を表現する手段が切り開かれました。光沢を持つ物体の表現にもこれからチャレンジしていきたいです。 仕組み 画面上の位置から、球に…

【Processing】角度で定義し、高速動作する鏡面を実装する。

成果物 www.youtube.com ※ここでの鏡面は平行投影で背景を反射する鏡面を指しています。 MatCapのような仕組みを使えば鏡面を高速に計算できるのではということで実装してみました。角度を渡すだけで反射光を返してくれるので、面白いゆがみ方をした鏡面も作…

【Processing】多角形を入力して、曲線が美しいVoronoi図を生成する。

成果物 www.youtube.com 入力したのはとげとげの多角形なのに、こんなにも曲線的なVoronoi図ができて驚きました。恐らく、頂点と、辺の二等分線が曲線になるためだと思われます。あらゆる線も入力できるので応用が期待できそうです。 仕組み 多角形の最も近…

【Processing】流体シミュレーションに従って画像を変形させる。

成果物 www.youtube.com 当分前に作った流体シュミレーションのプログラムを使って、画像を変形させてみました。最近は大した成長がないので、頑張っていきたいです。 仕組み 流体シュミレーションの速度成分に沿って、Mesh Deformationを使って、画像を変形…

【Processing】重力で合体するアニメーションを作る

成果物 www.youtube.com 重力でひかれあう物体は独特の動きをして面白いのでアニメーションを作ってみました。 仕組み 万有引力に沿って引合せ、衝突したら小さい方を削除し、速度、質量を引き継ぐ仕組みにしています。 コード Merge by Gravityという名前で…

【Processing×Raspberry PI】カラーセンサーの値をProcessingで視覚化する。

成果物 Processingで処理する方が便利なので、愚直にUDPでぶっ飛ばしております(笑)ちなみに今回は、ジェスチャーセンサーのカラーセンサーを使っています。意外ときれいな模様が撮れて満足です。カメラをつかえばいいことに気が付いたのはだいぶ後でした() …

【Processing】画像を極座標変換する。

成果物 AviUtlでもよく使われる極座標変換を実装してみました。本家に忠実に、画像の中心が円の中心になり、画像の高さが円の半径になるようにしました。 仕組み 画像のUV(0極座標変換後の角度を求め、それに従って、Mesh Deformationを使って変形しています…

【Processing】画像の色相をオフセットする。

成果物 色相はループしているので、オフセットしていったら面白いのではないかということで作ってみました。なかなか予想外の動き方でした。恐らく多くの画像編集ソフトにも搭載されている機能だと思います。 仕組み 各画素で、色相、彩度、明度を取得し、色…

【Processing】画像のガンマ値を変える。

成果物 www.youtube.com 画像を明るくしたり、暗くしたりするときに使う、ガンマ値を実装してみました。特徴をとらえたまま、明るさを変更できるので非常に便利です。ガンマ値を高くしたかえる仙人も渋くて面白いです。 ちなみにHSBでガンマ値を変えるとこん…

【Processing】一点を見つめる目を作る

成果物 www.youtube.com ※これは、Processingで動物を描くための試作です。怪しいものではございません。 今回は、マウスを見つめる目を作ってみました。目の形を変えればもう少しかわいくなるはずなのですが、技術的に難しく、恐ろしい仕上がりになりました…

【Processing】超音波距離センサーを使ったテルミンを作る。

成果物 赤外線フォトリフレクタを使ったテルミンが多いのですが、超音波距離距離センサーを使うと距離に比例する音程が出せるかなと思って作ってみました。ちなみに、本物は電磁波を使っているようです。 非常に恐縮なのですが、音声はGithubに保管させてい…