画像処理

画像処理

ハフ変換

ハフ変換そのものは座標の変換処理なのですが、画像処理では、ハフ変換を用いて画像中の直線部分を抽出するのに用いられます。 ハフ変換と言うだけで、あんに直線検出を指している事が多くあります。 また、ハフ変換を拡張して、円の検出に用いられる場合も...
C#

画像処理100本ノックをC#でやってみた

画像処理100本ノック というページがあるのをご存じでしょうか? 最近の画像処理と言えば、OpenCVをPythonでやってみた! という情報にあふれているのですが、この画像処理100本ノックでは、画像処理の処理部分はOpenCVに頼らずに...
C#

【C#】画像の輝度値の取得設定速度の比較

C#で画像の輝度値を取得/設定を行う場合は、GetPixel、SetPixelメソッドを使うと遅いのでLockBits~UnlockBitsでポインタをむき出して輝度値の取得/設定を行うのが定番となっていますが、自分自身でGetPixel、...
C#

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

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

画像の拡大

例えば、下図のように2x2画素の画像を4x4の画像に拡大する場合、アフィン変換を使えばいいんでしょ!と、安易に考えていると、思わぬ落とし穴があったりもします。 大事なポイントとして、 ●画像の座標の原点は左上の画素の中心が原点(0.0、0....
C#

【C#】Bitmapクラスへのポインタ渡し

画像処理のプログラムを作成するときは、GUIはC#、画像処理はC、C++で書かれたライブラリで作成するというのが、私の定番となっているのですが、C言語で処理された画像データをC#へ渡す場合は、画像データのコピーや画像ファイルを介せずとも、画...
C#

【C#】Bitmap画像データのメモリ構造

Bitmap画像の輝度値を参照するには、こちらのページ↓ で、Bitmap画像のメモリの値を参照するにはBitmapオブジェクトをLockBitsでロックし、BitmapDataのScan0プロパティを参照すれば、良いと書きましたが、このS...
C#

【C#】Bitmapのカラーパレットの設定

8bitのグレースケールのBitmap(PixelFormatがFormat8bppIndexed)を新規で作成する場合、カラーパレットを設定する必要があるのですが、安易に下記のようなコード // これは設定できない var bmp = n...
C#

【C#】Bitmap画像のビット数の取得

Bitmapクラスのプロパティに Format24bppRgb などを取得できる PixelFormatプロパティ はありますが、1画素あたりのビット数を取得するにはどうすればよいのか?? 画像処理で使うPixelFormatは Forma...
C#

【C#】画像(Bitmapクラス)のPictureBoxへの描画

画像(Bitmapオブジェクト)を描画するには、DrawImageメソッドを用いますが、DrawImageメソッドは30個も定義があり、使うと意図しない動きをする定義も含まれています。 DrawImage(Image image, Poin...
C#

【C#】Bitmapのファイル保存

Bitmapオブジェクトをファイルに保存するにはSaveメソッドを用います。 以下にBitmapファイル(*.bmp)を開き、Jpegファイル(*.jpg)に保存する例を示します。 var bmp = new Bitmap(@"C:\Tem...
C#

【C#】Graphicsオブジェクトの作成

フォームのピクチャボックスなどに画像や線を描画するには、Graphicsオブジェクトに対して描画を行いますが、Graphicsオブジェクトの作成方法はいくつかあり、描画の際の挙動も異なります。 Graphicsオブジェクトの作成方法は以下の...
C#

【C#】画像の結合

画像の結合は画像の一部領域の切り出しで行った方法とよく似ています。 処理の手順は 結合後の大きさと同じ大きさのBitmapオブジェクトの作成 BitmapオブジェクトからGraphicsオブジェクトの作成 作成したGraphicsオブジェク...
C#

【C#】画像の一部領域の切り出し

画像の一部領域を切り出すには以下の手順で行います。 切り出す領域と同じ大きさのBitmapオブジェクトの作成 BitmapオブジェクトからGraphicsオブジェクトの作成 作成したGraphicsオブジェクトへ元の部分領域を指定して描画 ...
C#

【C#】画像ファイルビューア(ソースコード付き)

(2019.09.03追記)本記事の内容を再度、再構成し、下記の記事を作成しました。 以下は以前、書いた記事 画像ファイルを開いて、マウスホイールの上下で拡大縮小するソフトは、以前にも作り、旧ブログで公開しているのですが、これはGraphi...
画像処理

【C#】画像処理プログラム向け基本プログラム

C#で画像処理を行うための最低限のプログラムを作成しました。 サンプルプログラムのダウンロードはこちら↓ ImagingBaseSample.zip(Visual Studio 2015 C#) ※Windows7では画像表示が消えてしまう...
タイトルとURLをコピーしました