読者です 読者をやめる 読者になる 読者になる

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

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

C#

(C#) JsonParser を実装してみた

C#

github.comいまさら感はありますが JsonParser を実装してみました。デザインパターンの Interpreter パターンを使って実装しています。 はじめて Interpreter パターンを使ったんですが、これはすごい!って思いました。 他のパターンと使いどころがかなり…

(C#) 字句解析ツールを作ってみた

C#

"C# Tokenizer" で検索しても見つからないので作ってみました。github.com 使い方 CSV ファイルの分解ツールを作る手順を書いてみます。 プロジェクトの作成 Visual Studio でプロジェクトを作成します。 GitHub から Hikipuro/Text 内のファイルをコピーし…

(C#) コピペで使える ToStringBuilder

コピペで簡単に使える ToString ビルダーを作ってみました。 ToStringBuilder.cs で保存してください。 (Unityでも使えます。)public なフィールドのみ表示されます。 改造するのも簡単なので、目的に合わせて書き換えてください。 "C# リフレクション" とか…

C#からCUDAを書けるようにしてみた

こないだ CUDA Toolkit 7.5 をダウンロードしてみたんですが、C# から呼び出すためのライブラリが最新版に対応してなさそうだったので、試しに自分で作ってみました。(ちゃんと調べていないだけで、対応しているかもです。)github.comCUDAnshita (くだんした…

(C#) 構文木を作ってみた

ここ数日間、画像処理ばっかりやってたので飽きてきました。。 ちょっと、 JavaScript のインタープリタとか作ってみたい とも思っていて、試しに構文木を作ってみました。まだ細かく説明できるほどには理解が深くないので、とりあえずコードを貼り付けてみ…

(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…

(C#) なぜ UI スレッドは1本だけなのか

2 つ前の記事で、マルチスレッド対応の int 型を作りました。 (C#) マルチスレッド対応の int 型 - ひきぷろのプログラミング日記hikipuro.hatenadiary.jpこれを、例えばマルチスレッド対応の UI パーツの作成例として応用できないかと実験してみました。結…

(C#) Java と同じ仕組みの synchronized メソッドを作成する

C# では synchronized メソッドは作成できない、またはメソッド内で lock キーワードを代わりに使う というような解説記事ばかりが見つかるので、本当にそうなのか?と思って検索してみました。 結果からいうと、作成できるようです。C# の場合は言語のキー…

(C#) マルチスレッド対応の int 型

マルチスレッドで値を操作しても内容が壊れない int 型を作ってみました。 class MtInt { private int _value; private object _valueLock; public MtInt() { _value = 0; _valueLock = new object(); } public MtInt(int i) { _value = i; _valueLock = new…

(Unity) Unity上でIronPythonを動かしてみた

Unity 上で IronPython を動かしてみました。 以下やり方です。 IronPython をインストールする IronPythonironpython.codeplex.com↑ このサイトから IronPython をダウンロードしてインストールしてください。 現時点ではバージョン 2.7.5 っぽいです。 お…

(C#) MNISTのラベルデータを読み込むクラス

前回の記事では、 MNIST の画像データを読み込むクラスを作りました。 (C#) MNISTの画像データを読み込むクラス - ひきぷろのプログラミング日記hikipuro.hatenadiary.jp今回は引き続き、ラベルデータを読み込むクラスを作ってみました。またコピペしてみま…

(C#) MNISTの画像データを読み込むクラス

ニューラルネットワークのテストをしようと思って、MNISTの画像データを読み込むクラスを C# で作ってみました。作ったものをコピペします。 ビッグエンディアンで数値が扱える BinaryReader MNIST の画像データは、ビッグエンディアン形式で保存されていま…