C#

C#

C#から使うC++ライブラリ(DLL)の作成方法

前回はC#で書かれたライブラリの作成方法でしたが、今回は、C#から使えるC++で書かれたライブラリの作成方法です。 C++と言っても、C++内部でクラスを使う事は可能ですが、C#から直接呼ぶ事が出来るのは、クラスではない関数のみとなります。...
C#

C#ライブラリ(DLL)の作成方法

C#から使う、C#で書かれたライブラリ(*.dll)の作成方法です。 C#から使う、C言語ライブラリの作成方法はこちらを参照ください。 まず、ライブラリを呼び出す側のプロジェクトを作成します。 ここでは、Windowsフォームアプリケーショ...
C#

【C#】文字列の回転描画

文字列を回転して描画するのはGraphicsオブジェクトをワールド変換して描画することも可能ですが、ワールド変換はGraphicsオブジェクト全体の座標系が変換されてしまうため、少々使いづらく感じます。 そこで、文字だけを回転するGraph...
C#

【C#】メモリの値コピー、ポインタ、1次元、2次元、3次元配列間

C#でメモリのポインタ(IntPtr)と一次元配列間の値のコピーにはMarshal.Copyメソッド(名前空間:System.Runtime.InteropServices)を用います。 Marshal.Copyにはポインタから一次元配列へ...
C#

【C#】配列の中身をメモリで確認する方法

C言語の時は、ポインタの中身をメモリで参照する事が多かったのですが、C#をメインで触るようになってからは、メモリの中身を参照することは無くなってしまい、いざ、やってみようとすると、やり方がわかりづらかったので記事にしました。 まず、Visu...
C#

【C#】アフィン変換を用いて画像ビューアを作ろう!

C#にはアフィン変換に用いる行列用の Matrixクラス(名前空間:System.Drawing.Drawing2D) というクラスがあり、これを駆使すると、以下のようなプログラムを比較的簡単に作成することができます。 プログラムの実行ファ...
C#

C#から使える画像処理ライブラリ

画像処理のプログラムでは、当然ながら画像の表示や、操作するボタンなどが欲しくなるので、GUIのプログラム作成が簡単なC#が割とよく用いられています。 しかし、画像処理そのものをC#でやるには処理速度に不満もあるので、GUIはC#、画像処理部...
C#

【C#】領域(Rectangle)全体を大きくする、小さくする

Rectangle構造体であらわされた領域全体を左右方向、上下方向に大きく/小さくするには Inflateメソッドを用います。 コード例 private void Form1_Paint(object sender, PaintEventA...
C#

【C#】Rectangle<-->RectangleFの相互変換

あまりやる事は無いのですが、Rectangle(名前空間:System.Drawing)とRectangleFの相互変換について調べてみました。 RectangleからRectangleFへ変換 これに関しては、型は変わるものの、値そのもの...
C#

【C#】座標が領域内にあるか?調べる方法

マウスをクリックした時など、任意の座標がある領域の範囲内にあるか?どうか?調べたい場合があります。 これを調べるには、四角形の領域の場合、Rectangleクラス(名前空間:System.Drawing)のContainsメソッドを用います...
C#

【C#】グラフのメモリ間隔の計算

C#でグラフを書く場合はChartを使うと簡単に書く事ができますが、Chartだけでは物足り無い事や、描画速度が遅かったりするので、自前でグラフを書こうとしたときに、Chartでやっているグラフの軸の間隔(下図の例では20)は、どうようにし...
C#

【C#,WPF】多ビット画像の取り扱い

一般的なカメラであれば、モノクロの画像であれば8bit(256諧調)、カラー画像であれば24bit(R,G,Bそれぞれ8bit)の画像が一般的なのですが、マシンビジョン用のカメラでは、1画素あたり10~14bitぐらいまでの諧調を持つカメラ...
Microsoft Cognitive Toolkit

Microsoft Cognitive Toolkit Ver2.6が公開されました

変更の概要についてはこちら↓ 以前のバージョン(Ver2.5.1)ではVisual Studio 2015からも実行できたのですが、今回のVer2.6ではVisual Studio 2017でないとNuGetよりインストールできませんでした...
Deep Learning

Cognitive Toolkitのダウンロード、環境設定【C#編】

マイクロソフトのCognitive ToolkitをVisual StudioのC#で使用するためのインストール方法、環境構築を紹介します。 結論からすればCognitive Toolkitを動作させるためには、関連するDLLファイルがあれ...
C#

【C#】Bitmapの解像度(DPI)の取得設定

画像ファイルのプロパティをエクスプローラーで表示すると、下図のように水平方向の解像度、垂直方向の解像度が表示されますが、ほとんどの場合、Windowsでは96dpiと表示される場合が多いのですが、この解像度の値をC#で取得、設定(変更)して...
C#

【C#】正規分布に従う乱数の取得

.NETでは乱数のクラスにRamdomクラスがあります、どれも一様に分布する乱数しか取得できません。 例えば、NextDoubleメソッドを用いると、0以上、1.0未満の一様に分布した乱数を取得する事ができます。 var rnd = new...