ひきぷろのプログラミング日記

プログラミングの日記です。

画像処理

(Unity) HLSL で Compute Shader を書くのは難しい

Unity 上で HLSL という仕組みを使って Compute Shader の処理を書いていたんですが、 Visual Studio のような環境で CPU 向けにコードを書くのと違うところが沢山あって、いろいろと困難を感じてしまいました。感想文のような感じになりますが、発生した問…

(Unity) グレースケールフィルタを Unity に移植してみた

以前作ったグレースケールフィルタを Unity に移植しました。GPU で動かしたかったんですが、まずは CPU で実装してみました。Visual Studio で実装したクラスは次のページにあります。(C#) グレースケールフィルタを実装してみた - ひきぷろのプログラミン…

(C#) ピクセル操作を並列化する

前の記事で、ピクセル操作を簡単に書くために PixelManipulator というクラスを作りました。(C#) 移動平均フィルタを実装してみた - ひきぷろのプログラミング日記hikipuro.hatenadiary.jp実行効率を無視して作ってしまったため、速度が遅いです。お手軽に高…

(C#) ラプラシアンフィルタを実装してみた

画像のエッジ抽出用のフィルタです。 似たような効果を持つフィルタで、 ソーベルフィルタ キャニーフィルタ Max Min フィルタ というようのがあるそうです。ソーベルフィルタは、検出したいエッジの向きを 8 方向から選べるっぽいです。 ラプラシアンフィル…

(C#) モザイクフィルタを実装してみた

PixelManipulator クラスの実装が不十分なおかげで端っこが塗られませんが、ひとまずモザイク処理はできたのでコードを貼り付けてみます。 using System.Drawing; class MosaicFilter { // 引数で渡されたビットマップ画像にモザイクフィルタを適用します pu…

(C#) 画像の 2 値化フィルタを実装してみた

画像を 2 値化するフィルタを作ってみました。 using System.Drawing; class ThresholdingFilter { // 引数で渡されたビットマップ画像を 2 値化します public static Bitmap Apply(Bitmap source, byte threshold = 128) { // ビットマップ画像から全てのピ…

(C#) メディアンフィルタを実装してみた

using System.Collections.Generic; using System.Drawing; class MedianFilter { // 引数で渡されたビットマップ画像にメディアンフィルタを適用します public static Bitmap Apply(Bitmap source, int size = 3) { // ビットマップ画像から全てのピクセル…

(C#) ガウシアンフィルタを実装してみた

using System; using System.Drawing; class GaussianBlurFilter { // 引数で渡されたビットマップ画像にガウシアンフィルタを適用します public static Bitmap Apply(Bitmap source, int size = 3) { // ビットマップ画像から全てのピクセルを抜き出す Pixe…

(C#) 移動平均フィルタを実装してみた

画像に移動平均フィルタをかける処理を実装してみました。今のところ 3x3 サイズのフィルタになっています。 詳しい処理内容については、次のページを見てみてください。平滑化(移動平均、ガウシアン)フィルタ 画像処理ソリューション ピクセル操作クラス…

(C#) グレースケールフィルタを実装してみた

C# でグレースケールフィルタを実装してみました。 処理内容は、次のサイトを参考にさせて頂きました。2.9 演習問題 (2-4) グレースケール変換プログラム - PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう グレースケールフィルタクラスの実装…

(C#) RGB と HSV の相互変換

RGB 値と HSV 値の相互変換用の処理を書いてみました。 処理の詳しい内容は Wikipedia を見てみてください。HSV色空間 - Wikipedia HSV カラーを扱うクラスの作成 まず、 HSV カラーを扱うクラスを作ります。 using System; class ColorHSV { public float H…