午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

↓Windows用アプリ

C#.NETで分散を求める2回め、System.Numerics.Vector.Dotも使ってみたけど…

今回の記事は前回の gogowaten.hatenablog.com ↑この記事を書き直したもので 直した理由は速度比較をしていたんだけど、Math.Powの使い所が間違っていて、速度比較になっていないことが記事を書いた6日後に gogowaten.hatenablog.com わかったから、なので前…

C#.NETのMathPowは速くない?べき乗計算は掛け算を繰り返したほうが速い場合もあった

Math.Powを使うと遅くなる状況がある アプリダウンロード先とコードはギットハブ アプリファイル名:20200217_MathPow.zip github.com アプリ作成と計測環境 CPU AMD Ryzen 5 2400G(4コア8スレッド) MEM DDR4-2666 Window 10 Home 64bit Visual Studio 2019 …

ドット積を求めるSystem.Numerics.VectorのDotメソッドを使って分散を求めてみた

2020/02/19追記ここから 処理時間の基準にしたTest01でMathPowの使い方に問題があることが6日後の gogowaten.hatenablog.com ↑の記事でわかったので 書き直したのが ↓ gogowaten.hatenablog.com なのでここから↓はほとんど意味ない 2020/02/19追記ここまで …

本当は速いSystem.Numerics.Vector.Addを使って、int型配列の値合計2回め

前回、前々回でイマイチだったSystem.Numerics.Vector、本当は速かった int型配列の要素の合計の処理時間、シングルスレッド編 test19が今回追加したもの グラフにすると 普通のForループより2倍速くなった! マルチスレッド編 前回で速かったTest12~15より…

int型配列の合計値マルチスレッド編

前回は シングルスレッドだけでの計算だった 今回はマルチスレッド 1から100万1までの連番の合計を1000回求めるのにかかった時間 合計値の正解は500001500001 計測アプリ ボタンを押して待つだけ、test2とtest11だけは極端に遅い、test5とtest21はオーバーフ…

int型配列要素の合計値を求めるのにSystem.Numerics.VectorのAddを使ってみたけど

int型配列要素数100万の合計を100回求める処理時間測定 まとめ forかforeachが速い LINQは遅いけど今どきのCPUなら10億回の計算でも0.5秒で終わる VectorのAddはforより速いこともあるけど条件がめんどくさい 2020/02/11追記ここから gogowaten.hatenablog.c…

C#、配列から最大値を求めるMaxは、MathクラスよりSystem.Numerics.Vectorクラスのほうが速い

要素数1千万のint型配列(値はランダム)から、最大値を1000回求めた時の処理時間は、MathクラスよりVectorクラスのほうが2倍以上速い結果になった 青色グラフはシングルスレッド 赤色グラフは配列を分割してマルチスレッド 緑色グラフは1000回ループを分割し…

.NET Coreで作ったアプリの実行ファイルの作成手順

rksoftware.hatenablog.com こちらを参考にして期待通りの実行ファイルができたのでメモ ソリューションエクスプローラーのプロジェクト名の右クリックメニューから発行 「編集」もしくはペンのアイコンをクリック プロファイルの設定 それっぽいところを変…

.NET Coreを使ってみた、.NET Frameworkで作ったアプリのコードはコピペで動いた

.NET Coreって名前だけは聞いていたけど、わかりやすかったのは codezine.jp なるほど、ってことで.NET Coreを使ってみた 昨日の記事の.NET Frameworkで作ったアプリのコードをコピペして動くのか試してみる 上のが今まで使っていた.NET Framework、下のが.N…

C# .NET FrameworkでもCPUの拡張命令SIMDと並列処理で、画像の減色処理速度40倍

2020/03追記 処理速度40倍ってあるけど、実際はそんなに速くなっていない可能性 gogowaten.hatenablog.com MathクラスのPowを使わないで普通に掛け算すれば、30~80倍くらい速くなる。逆に言うとPowを使うと遅くなる。SIMDでの処理ではMathPowを使っていない…

WPFのBitmapSourceVisualizer、画像の保存とクリップボードへコピーできるようにした

gogowaten.hatenablog.com これの続き dllの名前を変更した、MyVisualizerからBitmapSourceVisualizer 画像を保存できるようにした 画像をクリップボードへコピーできるようにした 画像の表示方法を選択出るようにした、実寸とウィンドウに合わせる これで十…

WPFのBitmapSource用のデバッガービジュアライザー作ってみた

WPFのBitmapSource用のデバッガービジュアライザー作ってみた ダウンロード先 MyVisualizer.zip 展開してMyVisualizer.dllを ドキュメントフォルダにある使いたいバージョンのVisual StudioのVisualizersフォルダに入れるだけ ユーザー名がwatenでVisual Stu…

PDFをjpegにするアプリ、pngにもできるようにした

gogowaten.hatenablog.com の続き png形式でも保存できるようにした PDFtoJPEG 1.4 ダウンロード先 PDFtoJPEG_1.4.zip PDFファイルは www.maff.go.jp 野菜の輸入動向(月間速報)https://www.maff.go.jp/kanto/seisan/engei/yasai-yunyu/attach/pdf/index-19…

PDFをjpegにするアプリ、jpegのZipにできるようにした

昨日の gogowaten.hatenablog.com 続き PDFファイルをjpegに変換したものを、1つのzipファイルにできるようにした ダウンロード PDFtoJPEG_1.3.zip PDFファイルは www.maff.go.jp 野菜の輸入動向(月間速報)https://www.maff.go.jp/kanto/seisan/engei/yasa…

WPF、PDFファイルをロックしないで開く

昨日の gogowaten.hatenablog.com 続き PDFファイルをロックしないで画像として表示したい 表示しているPDFファイルは 農林水産省 トマトの種類と見分け方 http://www.maff.go.jp/j/pr/aff/1708/pdf/1708_04.pdf より引用 開いている間はファイルがロックさ…

PDFをjpegに変換するアプリ、jpeg品質指定と予測ファイルサイズの取得

一昨日の gogowaten.hatenablog.com 続き jpegの画質を指定できるようにした、最低10から最高の100 表示するページを指定できるようにした 保存されるjpegファイルサイズの予測を表示 表示する画像は指定した画質相当のものにした クリックで元のBitmap画像…

WPFでPDFをjpeg画像に変換するアプリ作ってみた

PDFファイルをjpegの画像ファイルに変換するアプリ作ってみた ダウンロード PDFtoJPEG.zip ギットハブ github.com 農林水産省 トマトの種類と見分け方 http://www.maff.go.jp/j/pr/aff/1708/pdf/1708_04.pdf ここからダウンロードしたPDFファイルをアプリに…

最近傍補間法で画像の拡大縮小試してみた、2回め

ようやく納得できるまでになった 変換後の座標をxとして、xが参照するべき変換前座標は (x + 0.5) * (変換前ピクセル数 / 変換後ピクセル数) これの小数点以下切り捨てた値 例えば倍率が3で、変換前画像の横ピクセル数が4のときは 変換後画像の横ピクセル数…

2つの画像が同じなのか簡易判定するアプリ作ったけど、なんか違う

比較する画像の追加は、ウィンドウの左右それぞれに画像ファイルをドロップするか、クリップボードから追加したいときは上にあるボタンで追加できる。あとは2つある判定ボタンのどちらかを押すだけ この結果は 比較判定方法は 画像は元の画像のピクセルフォ…

3x3のメディアンフィルタの高速化をC#で書いてみた

3×3メディアンフィルタの高速アルゴリズム https://www.ipsj.or.jp/award/9faeag0000004f1r-att/LI_9.pdf ここを見てC#で書いて実行した結果 前回4.39秒だったのが0.20秒になった 439/20≒22で、約22倍も速くなったことになる、すごい 使った画像は 2048x1…

メディアンフィルタで画像のノイズ除去試してみた、WPF、C#

メディアンフィルタでごま塩ノイズ除去 全体的にぼやけてしまうけどごま塩ノイズを除去できた メディアンフィルタ 注目セルとその周囲8近傍の値の中央値を 注目セルの新しい値にする エクセルには中央値を求めるMEDIAN関数がある 便利だなあ 色を付けてみる…

画像にノイズ付加するアプリ、カラー版

画像にノイズ付加するアプリ、一様分布乱数から正規分布乱数生成、エクセルのNORMINV関数で正規乱数 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ https://blogs.yahoo.co.jp/gogowaten/15961286.html この前はグレースケール画像だったのをカラー…

画像にノイズ付加するアプリ、一様分布乱数から正規分布乱数生成、エクセルのNORMINV関数で正規乱数

画像にノイズ付加してみた ピクセルの輝度値に乱数を加えればノイズになる 一様分布になる乱数と正規分布になる乱数、正規乱数 一様分布 エクセルのRAND関数の結果1000個のヒストグラム どの範囲もだいたい同じ個数になっている、こういうのを一様分布ってい…

画像のエッジ抽出、ラプラシアンフィルタ

画像のエッジ抽出、ラプラシアンフィルタ、ラプラシアンオペレータ ラプラシアンフィルタでエッジ抽出した結果 色の境界、輪郭を白で表現する感じ 元の画像 この前のガウスぼかしと同じようにカーネル(マスク、オペレータ)があって この2つがよく使われるみ…

ガウス関数からカーネル作成、標準偏差とカーネルサイズ、グレースケール画像のぼかし処理

画像のぼかし処理で使うカーネルをガウス関数から作成してガウスぼかし 標準偏差の指定とぼかし具合 カーネルサイズは3x3で標準偏差を0.1、0.5、1.0 標準偏差=0.1だと全くぼやけない、0.5でほんの少しぼやけたかなくらいで、1.0だとぼやけたのがはっきりわか…

画像のぼかし処理、8近傍平均とガウスぼかし、グレースケールで処理

8近傍平均は移動平均フィルター ガウシアンフィルタはガウスぼかし 上下左右は4近傍 呼び方が安定しない 8近傍はこの前の上下左右から参照ピクセルが増えただけ、斜め方向の4ピクセルを加えた9ピクセルの合計の平均値を新しい値にする ガウシアンは中心の注…

画像の色相をバブルチャート風に表示するアプリ

シェフの気まぐれ極座標バブルチャート風画像の色相分布図 できた なまえがわからん 値に応じて●の大きさと位置を変えているからバブルチャートはあっていると思う 前回は扇形だった 値の大きさを円の中心からの距離(半経)にして扇形のグラフにしていた 円の…

画像の色相を円形ヒストグラム、扇形(パイ型)グラフで表示するアプリできた

できた アプリのウィンドウに画像ファイルをドロップで 画像とその色相のグラフが表示される 色相範囲分割数 12分割は360/12=30度区切り 360分割、こっちのほうがより正確なはず、だけど見た目的には72くらいが面白いかな 色相がない無彩色画像は グラフが…

画像の使用色数とその色のピクセル数を表示するアプリその5

おとといからの方法で市松模様を下敷きにして 半透明の色を見た目でもわかるようにした たったこれだけなんだけど思っていたよりかなり手間がかかった(3日)w 完全不透明、A=255 完全透明、A=0 半透明 61~76行目をコメントアウトして 変わりにこの部分をC#…

画像の使用色数とその色のピクセル数を表示するアプリその4

ボタン3つ追加した 降順、昇順の切り替え 画像の等倍表示と縮小表示の切り替え リストの背景色切り替え 白→灰色→黒→白に戻る これで白色グラフも見えるようになった ギットハブ count_color/CountColor/CountColor at master count_color/CountColor/CountCo…