C# / 応用
■ はじめに https://blogs.yahoo.co.jp/dk521123/38069294.html の続き。 今回は、「擬似2次元アフィン変換(共一次変換)」について、扱う。 ■ サンプル * 以下で実装してみる + 補正方法 : 擬似2次元アフィン変換 + 補間方法 : 最近傍補間(ニアレストネイ…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38088151.html https://blogs.yahoo.co.jp/dk521123/38104577.html の続き。 以下のサイトからわかったことを抜粋していく。 https://csharp.hotexamples.com/examples/ProjNet.CoordinateSystems/Coordinate…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38088151.html の続き。 Proj.Net を扱う上で資料がなさ過ぎて手探り状態なので、 予想も含めて、メモ。 ■ API仕様 * Proj.Net は、GeoAPI も使っているっぽい GeoAPI https://nettopologysuite.github.io/ht…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38098235.html の続きで、今回は、「【2】GDAL パッケージを利用して実装」を取り扱う ■ サンプル * 環境設定については以下の関連記事を参照。 https://blogs.yahoo.co.jp/dk521123/38092205.html GdalConf…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38092205.html https://blogs.yahoo.co.jp/dk521123/38100268.html の続き。 今回は、gdalwarpコマンドを実行することを考える C#に関しては、ほとんど情報がない... 実装案 【1】 Process.Start() で実行 ★…
■ はじめに * 畳み込み演算 (コンボリューション, Convolution) / マスク演算 * 平滑化(スムージング,Smoothing) 参考文献 https://algorithm.joho.info/programming/csharp-average-filter/ 関連記事 画像処理 画像処理 ~ アフィン変換・Matrixクラス …
■ はじめに https://blogs.yahoo.co.jp/dk521123/38092205.html の続き。 今回は、簡単なサンプルを動かす。 なお、公式サイトのサンプルを参考(ほぼコピペ)にした C#のサンプル https://trac.osgeo.org/gdal/browser/trunk/gdal/swig/csharp/apps ■ サン…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38055503.html の続き。 今回は、実用面でなく、画像の回転を通してアフィン変換を理解する。 ■ 自作で任意角度で画像を回転する 実装方法 【1】画像の中心を原点に平行移動 【2】指定した角度で回転 【3…
■ はじめに * GDAL をC# 扱うための環境設定を取り上げる * GDAL については、以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/38092840.html https://blogs.yahoo.co.jp/dk521123/38093845.html 公式サイト (C#関連) https://trac.osgeo.or…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38089718.html の続き。 今回は、libgeotiffを扱う。 libgeotiff * GeoTIFF(※)を扱うライブラリ。libtiffと併せて使用。 ※ GeoTIFF : 地理参照情報が埋め込まれたTIFF画像(TIFF : ティフ、Tagged Image File…
■ はじめに * libgeotiffを使う手始めとして、まずは、libtiff を使ってみる ■ .NET で libtiff を使うには... * 「LibTiff.Net」を使用する LibTiff.Net 公式サイト https://bitmiracle.com/libtiff/ サンプル https://github.com/BitMiracle/libtiff.net/t…
■ はじめに 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…
■ PROJ * 地理座標系と投影座標系との間の変換を行うライブラリ * 詳細は、以下の関連記事を参照。 https://blogs.yahoo.co.jp/dk521123/38095650.html ■ .NETで PROJ を使うには... 【1】Proj.Net << 今回のテーマ 【2】Proj4Net etc... 設定方法 * どち…
■ 用語整理 ストライド(Stride) * 画像のような二次元配列の構造のものを、一次元配列で扱う場合、 配列の何番目から何番目までのデータが画像の横一列分に相当するのかを表す値 => 以下のサイトが非常に分かりやすい http://neareal.com/470/ 例:画像幅が …
■ サンプル 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(…
■ アンセーフ コード unsafeステートメント * C# でポインタを使用できる fixedステートメント * マネージオブジェクトのポインタを固定できる ■ アンセーフ コード を使用する上での注意点 * 以下の設定が必要。(でないとコンパイルエラー) https://docs.…
■ 幾何補正(geometric correction) * 画像に対する歪みやズレを取り除く処理 ■ サンプル * 以下で実装してみる + 補正方法 : 2次元アフィン変換 + 補間方法 : 最近傍補間(ニアレストネイバー) # 「2次元アフィン変換」「最近傍補間(ニアレストネイバー…
■ はじめに https://blogs.yahoo.co.jp/dk521123/38068315.html で数値演算ライブラリを扱ったが、 今回は、行列計算を自作で実装してみる ■ 逆行列の求め方 * 逆行列の求め方は以下の通り。 [1] 掃き出し法 (Row reduction)・ガウス・ジョルダンの消去法 (G…
■ はじめに * 画像処理を行う際に、アフィン変換が避けては通れないので、まとめる ■ アフィン変換とは? * 線形変換と平行移動を組み合わせた変換 線形変換 * 変換前に直線だった箇所は、変換後も直線が保たれる * 図形(今回は画像)に対して、以下の操作…
■ はじめに 行列計算をC#で行いたいので調べていたら、 「Math.Net Numerics」というライブラリが見つかったので試してみた 補足(2019/05/19追記) * .NET環境用の科学技術・統計計算ライブラリ「NAG Library for .NET」っていうのもあるらしい http://www.…
■ 主なメソッド IntersectsWith() / Intersect() IntersectsWith() * 矩形が重なるか判定する https://www.ipentec.com/document/csharp-rectangle-check-intersect Intersect() * 矩形が重なる部分を求める https://www.ipentec.com/document/csharp-rectan…
■ コントラスト * 明暗の差 => コントラストが強い : 明暗の差が大きい ■ サンプル コントローラ * button x 1 * trackBar x 1 * pictureBox x 1 コード using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; na…
■ 回転 【1】上下左右反転、90,180,270度回転 => Image.RotateFlip() を使う(!簡単!) ★今回扱う事項★ 【2】任意の角度で回転する => 以下の関連記事を参照のこと https://blogs.yahoo.co.jp/dk521123/38055503.html ■ サンプル 上下左右反転、90,180,2…
■ サンプル コントローラ * 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…
■ シャープネス(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…
■ はじめに 自分で作成しているアプリにおいて、サポートしている画像形式かどうかを判定するために 以下のサイトを参考に作成した https://dobon.net/vb/dotnet/graphics/imagerawformat.html しかし、テストをしてみると、連続して使うと、 System.Drawing…
■ ポイント * 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…
■ ポイント 証明書ファイル作成 var certificate = new X509Certificate2(); File.WriteAllBytes("Hello.cer", certificate.Export(X509ContentType.Cert)); ■ トラブル * 以下の関連記事を参照のこと。 https://blogs.yahoo.co.jp/dk521123/36989390.html ■…
■ 関連するクラス X509Certificate2 クラス デジタル証明書(X.509 証明書) https://msdn.microsoft.com/ja-jp/library/system.security.cryptography.x509certificates.x509certificate2.aspx X509Store クラス 証明書ストア(デジタル証明書の保存場所) …
■ はじめに * コンソールアプリを作りそうなので、復習。 * プロジェクト作成などは以下を参考。 https://www.ipentec.com/document/csharp-create-simple-console-application https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-…