C# / 応用

【C#】画像処理 ~ 幾何補正 / 擬似2次元アフィン変換編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38069294.html の続き。 今回は、「擬似2次元アフィン変換(共一次変換)」について、扱う。 ■ サンプル * 以下で実装してみる + 補正方法 : 擬似2次元アフィン変換 + 補間方法 : 最近傍補間(ニアレストネイ…

【C#】Proj.Net ~ あれこれ編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38088151.html https://blogs.yahoo.co.jp/dk521123/38104577.html の続き。 以下のサイトからわかったことを抜粋していく。 https://csharp.hotexamples.com/examples/ProjNet.CoordinateSystems/Coordinate…

【C#】Proj.Net ~ 基本編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38088151.html の続き。 Proj.Net を扱う上で資料がなさ過ぎて手探り状態なので、 予想も含めて、メモ。 ■ API仕様 * Proj.Net は、GeoAPI も使っているっぽい GeoAPI https://nettopologysuite.github.io/ht…

【C#】.NET で GDAL・gdalwarpを実行するには... [2]

■ はじめに https://blogs.yahoo.co.jp/dk521123/38098235.html の続きで、今回は、「【2】GDAL パッケージを利用して実装」を取り扱う ■ サンプル * 環境設定については以下の関連記事を参照。 https://blogs.yahoo.co.jp/dk521123/38092205.html GdalConf…

【C#】.NET で GDAL・gdalwarpを実行するには... [1]

■ はじめに https://blogs.yahoo.co.jp/dk521123/38092205.html https://blogs.yahoo.co.jp/dk521123/38100268.html の続き。 今回は、gdalwarpコマンドを実行することを考える C#に関しては、ほとんど情報がない... 実装案 【1】 Process.Start() で実行 ★…

【C#】画像処理 ~ 畳み込み演算 / 平滑化 ~

■ はじめに * 畳み込み演算 (コンボリューション, Convolution) / マスク演算 * 平滑化(スムージング,Smoothing) 参考文献 https://algorithm.joho.info/programming/csharp-average-filter/ 関連記事 画像処理 画像処理 ~ アフィン変換・Matrixクラス …

【C#】.NET で GDAL を使うには... ~ Hello World編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38092205.html の続き。 今回は、簡単なサンプルを動かす。 なお、公式サイトのサンプルを参考(ほぼコピペ)にした C#のサンプル https://trac.osgeo.org/gdal/browser/trunk/gdal/swig/csharp/apps ■ サン…

【C#】画像処理 ~ アフィン変換で任意角度の回転を自作する ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38055503.html の続き。 今回は、実用面でなく、画像の回転を通してアフィン変換を理解する。 ■ 自作で任意角度で画像を回転する 実装方法 【1】画像の中心を原点に平行移動 【2】指定した角度で回転 【3…

【C#】.NET で GDAL を使うには... ~ 環境設定編 ~

■ はじめに * GDAL をC# 扱うための環境設定を取り上げる * GDAL については、以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/38092840.html https://blogs.yahoo.co.jp/dk521123/38093845.html 公式サイト (C#関連) https://trac.osgeo.or…

【C#】.NET で libgeotiff を使う ~ LibGeoTiff ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38089718.html の続き。 今回は、libgeotiffを扱う。 libgeotiff * GeoTIFF(※)を扱うライブラリ。libtiffと併せて使用。 ※ GeoTIFF : 地理参照情報が埋め込まれたTIFF画像(TIFF : ティフ、Tagged Image File…

【C#】.NET で libtiff を使う ~ LibTiff.Net ~

■ はじめに * libgeotiffを使う手始めとして、まずは、libtiff を使ってみる ■ .NET で libtiff を使うには... * 「LibTiff.Net」を使用する LibTiff.Net 公式サイト https://bitmiracle.com/libtiff/ サンプル https://github.com/BitMiracle/libtiff.net/t…

【C#】Bitmap の高速化 について

■ はじめに https://blogs.yahoo.co.jp/dk521123/38086057.html の続き。 今回は、高速化。 ■ サンプル BitmapEx.cs using System; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace SampleForm { pub…

【C#】Proj.Net ~ 環境構築編 / .NET で PROJ を使うには... ~

■ PROJ * 地理座標系と投影座標系との間の変換を行うライブラリ * 詳細は、以下の関連記事を参照。 https://blogs.yahoo.co.jp/dk521123/38095650.html ■ .NETで PROJ を使うには... 【1】Proj.Net << 今回のテーマ 【2】Proj4Net etc... 設定方法 * どち…

【C#】Bitmap / BitmapData

■ 用語整理 ストライド(Stride) * 画像のような二次元配列の構造のものを、一次元配列で扱う場合、 配列の何番目から何番目までのデータが画像の横一列分に相当するのかを表す値 => 以下のサイトが非常に分かりやすい http://neareal.com/470/ 例:画像幅が …

【C#】二値化

■ サンプル using System; using System.Drawing; using System.Drawing.Imaging; using System.Runtime.InteropServices; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { public Form1() { InitializeComponent(…

【C#】アンセーフ コード ~ unsafe / fixed ~

■ アンセーフ コード unsafeステートメント * C# でポインタを使用できる fixedステートメント * マネージオブジェクトのポインタを固定できる ■ アンセーフ コード を使用する上での注意点 * 以下の設定が必要。(でないとコンパイルエラー) https://docs.…

【C#】画像処理 ~ 幾何補正 / 2次元アフィン変換編 ~

■ 幾何補正(geometric correction) * 画像に対する歪みやズレを取り除く処理 ■ サンプル * 以下で実装してみる + 補正方法 : 2次元アフィン変換 + 補間方法 : 最近傍補間(ニアレストネイバー) # 「2次元アフィン変換」「最近傍補間(ニアレストネイバー…

【C#】C# で 行列計算を自作する ~ 逆行列編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/38068315.html で数値演算ライブラリを扱ったが、 今回は、行列計算を自作で実装してみる ■ 逆行列の求め方 * 逆行列の求め方は以下の通り。 [1] 掃き出し法 (Row reduction)・ガウス・ジョルダンの消去法 (G…

【C#】画像処理 ~ アフィン変換・Matrixクラス ~

■ はじめに * 画像処理を行う際に、アフィン変換が避けては通れないので、まとめる ■ アフィン変換とは? * 線形変換と平行移動を組み合わせた変換 線形変換 * 変換前に直線だった箇所は、変換後も直線が保たれる * 図形(今回は画像)に対して、以下の操作…

【C#】 数値演算ライブラリ Math.Net Numerics

■ はじめに 行列計算をC#で行いたいので調べていたら、 「Math.Net Numerics」というライブラリが見つかったので試してみた 補足(2019/05/19追記) * .NET環境用の科学技術・統計計算ライブラリ「NAG Library for .NET」っていうのもあるらしい http://www.…

【C#】図形 ~ 矩形 / Rectangle ~

■ 主なメソッド IntersectsWith() / Intersect() IntersectsWith() * 矩形が重なるか判定する https://www.ipentec.com/document/csharp-rectangle-check-intersect Intersect() * 矩形が重なる部分を求める https://www.ipentec.com/document/csharp-rectan…

【C#】画像処理 ~ コントラスト ~

■ コントラスト * 明暗の差 => コントラストが強い : 明暗の差が大きい ■ サンプル コントローラ * button x 1 * trackBar x 1 * pictureBox x 1 コード using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; na…

【C#】画像処理 ~ 回転 ~

■ 回転 【1】上下左右反転、90,180,270度回転 => Image.RotateFlip() を使う(!簡単!) ★今回扱う事項★ 【2】任意の角度で回転する => 以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/38055503.html ■ サンプル 上下左右反転、90,180,2…

【C#】画像処理 ~ 輝度変更 (明るさ) ~

■ サンプル コントローラ * button x 1 * trackBar x 1 * pictureBox x 1 コード using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { private Ima…

【C#】画像処理 ~ シャープネス ~

■ シャープネス(Sharpness) * 画像の輪郭(エッジ)をはっきりとする処理 https://kotobank.jp/word/%E3%82%B7%E3%83%A3%E3%83%BC%E3%83%97%E3%83%8D%E3%82%B9-4335 ラプラシアンフィルタ(Laplacian Filter) https://imagingsolution.net/imaging/unsharpm…

【C#】対象の画像形式かどうかを判定する ~ Image を使って ~

■ はじめに 自分で作成しているアプリにおいて、サポートしている画像形式かどうかを判定するために 以下のサイトを参考に作成した https://dobon.net/vb/dotnet/graphics/imagerawformat.html しかし、テストをしてみると、連続して使うと、 System.Drawing…

【C#】証明書からルート証明書を取得する

■ ポイント * X509Chain.Build() を使用する X509Chain https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509chain.aspx https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificate…

【C#】 レスポンスから証明書を作成する

■ ポイント 証明書ファイル作成 var certificate = new X509Certificate2(); File.WriteAllBytes("Hello.cer", certificate.Export(X509ContentType.Cert)); ■ トラブル * 以下の関連記事を参照のこと。 https://blogs.yahoo.co.jp/dk521123/36989390.html ■…

【C#】 OS内の証明書を一覧表示する

■ 関連するクラス X509Certificate2 クラス デジタル証明書(X.509 証明書) https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate2.aspx X509Store クラス 証明書ストア(デジタル証明書の保存場所) …

【C#】コンソールアプリ ~ Hello World ~

■ はじめに * コンソールアプリを作りそうなので、復習。 * プロジェクト作成などは以下を参考。 https://www.ipentec.com/document/csharp-create-simple-console-application https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-…