午後わてんのブログ

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

画像処理

画像の色変更機能を追加した、OpaOpaOpasity

OpaOpaOpasity 2.1.0 成果物 ダウンロード先 動作、作成環境 変更点 png以外の画像も変換できるようにした 仕様 色変換機能追加 色変更設定 範囲設定 0(360)をまたぐ色相の範囲指定 変換設定 変換例 無彩色の色変換 その他変更点 参照したところ RGBとHSLの…

WinAPIとWPF(.NET 6.0)だけで画面上のカーソル位置の色取得してみた

結果 作成環境 コード 感想 関連記事 結果 色を取得しているところ 起動時 色取得中 クリック位置の色取得 作成環境 Windows 10 Home バージョン 22H2 Visual Studio Community 2022 Version 17.6.5 WPF C# .NET 6.0 コード 2023WPF/20230716_GetColorClickO…

Visual Studio Community 2022インストールした

インストール BitmapSourceVisualizer動いた メモリ使用量増えた 関連記事 インストール 必須 必要領域6.18GB、思っていたより少なくてよかった 空き領域 インストール先のSSDの空き領域は30GBしかないからねえ インストール開始 完了 約20分で完了した 起動…

SSIMで画像比較アプリRGBで比較版、WPF、C#

前回の続き 画像比較アプリ ダウンロード先 作成、動作環境 コード 比較 前回のグレースケールとも比較 ブロックサイズと間隔での計算量変化と結果 感想 関連記事 画像比較アプリ 2つの画像がどれだけ似通っているかを数値で表す テストアプリ 比較 画面 ブ…

SSIMで画像を比較するアプリできた、グレースケール版、C#、WPF

この前の続き 実際に画像を比較してみた 画像比較アプリ ダウンロード先 作成、動作環境 コード 比較 感想 関連記事 画像比較アプリ 今回のテストアプリ 左右に比較したい画像ファイルをそれぞれドロップするとSSIMを表示する SSIMの値は最低0から最大は1 0…

画像比較に使われているSSIMの計算式をエクセルとC#で試してみた、平均、分散、共分散

SSIM(Structural similarity) 計算式と数式の記号μ、σの意味とか エクセルで 分散、共分散の計算とエクセル関数 エクセル関数でSSIMのテスト WPF、C#でSSIMテストアプリ ダウンロード先 MainWindow.xaml MainWindow.xaml.cs 参照したところ 感想 関連記事 SS…

バイリニアとバイキュービックの縮小処理も書き直した

2021/05/07 23:20追記 まだバイキュービックが間違っていたので書き直した 追記ここまで 方法は昨日のランチョスと同じ バイリニア バイキュービック コード テストアプリ 作成動作環境 ダウンロード コード MainWindow.xaml MainWindow.xaml.cs テスト 感想…

前回の画像縮小処理ではランチョスの使い方を間違っていたので書き直した

前回のランチョスでの画像リサイズは、拡大はあっていたけど縮小処理が間違っていた 前回の縮小処理 今回での縮小処理 比較 今回のは全体的に少しぼやけているけど、途切れていた電線がつながった 解決まで なんで斜めの線が点線になっていたのか 解決するに…

C#、WPF、ランチョス補完法での画像のリサイズ、24bit(普通のカラー)と32bit(半透明画像)対応版

昨日のグレースケール専用だったのをカラー対応にしただけ コード 24bitカラー対応版 32bitカラー対応版 テストアプリ 作成動作環境 ダウンロード コード MainWindow.xaml MainWindow.xaml.cs テスト 処理時間 感想 関連記事 コード 24bitカラー対応版 //窓…

C#、WPF、ランチョス補完法での画像リサイズ処理に再挑戦、グレースケール専用

今回の記事も3年前の再挑戦 ランチョス法での重みのグラフ グラフタイトルのかっこいいフォントはこちらのを使用 ACT SELECT [ZILLION] REPLICA FONT http://actselect.chips.jp/fonts/32.htm ぬか喜びからの修正 不具合のあるコード ランチョス法での重み計…

C#、WPF、バイキュービック補完法での画像の拡大縮小変換、24bit(普通のカラー)と32bit(半透明画像)対応版

前々回のグレースケール専用バイキュービックのカラー版 コード 24bitカラーまで対応版 32bitカラーまで対応版 テストアプリ 作成動作環境 ダウンロード コード MainWindow.xaml MainWindow.xaml.cs テスト 感想 関連記事 コード 24bitカラーまで対応版 /// <summary></summary>…

WPF、画像の拡大処理を高速化してみた、Parallel.Forとセパラブルで最大22倍速、バイキュービック、グレースケール専用

昨日のバイキュービックでの画像拡大処理を高速化してみた 結果はParallel.Forでの処理の並列化+縦横の処理を別々にするセパラブルフィルタっていう方法で最大22倍速までになった 画像拡大処理の高速化 Test1、Parallel.Forを使って処理を並列化 Test2、4x4…

C#、WPF、バイキュービック補完法での画像の拡大縮小変換に再挑戦した結果、グレースケール専用

参照したところ 重みの決定方法 参照範囲の決定 距離の計算 コード 作成動作環境 テストアプリ MainWindow.xaml MainWindow.xaml.cs テスト 感想 関連記事 参照したところ 画像の拡大「Bicubic法」: koujinz blog http://koujinz.cocolog-nifty.com/blog/200…

C#、WPF、バイリニア法での画像の拡大縮小変換、半透明画像(32bit画像)対応版

昨日の24bit対応版を改変 コード 縮小変換専用 拡大縮小両対応 テストアプリ 作成動作環境 MainWindow.xaml MainWindow.xaml.cs テストアプリで確認 32bitと24bitは違った 感想 関連記事 コード 縮小変換専用 //縮小専用 /// <summary> /// 画像の縮小、バイリニア法</summary>…

C#、WPF、バイリニア法での画像の拡大縮小変換、24bitカラー対応とマルチスレッド対応版

コード 縮小変換専用 拡大変換対応版 確認アプリのコード 作成動作環境 MainWindow.xaml MainWindow.xaml.cs 確認アプリ 感想 関連記事 昨日のグレースケール専用を改変して カラーの対応ピクセルフォーマットはBgr24 マルチスレッド化は二重のForループの外…

C#、WPF、バイリニア法での画像の拡大縮小変換に再挑戦した結果、グレースケール専用

画像の縮小変換 ピクセルにも幅がある 参照点 参照範囲は1x1 面積 ピクセル座標から値を取得 答え エクセルで確認 中心座標じゃなくてピクセル座標で計算した場合 拡大変換に対応 縮小変換とは少し違う コード 縮小変換専用 拡大変換対応版 確認アプリのコー…

WPF、画像ファイルを開いてBitmapSourceで取得するときにdpi変換とPixelFormat変換

単純に取得(dpiやPixcelFormatの変更なし) streamで取得部分の新旧 StreamからBitmapSource作成部分 dpiやPixelFormatを指定(変更)して取得 dpiを指定して取得 PixelFormatを指定(変更)して取得 PixelFormatをBgar32に変換して読み込み テストアプリのコード…

WPFのBitmapSourceVisualizer、アルファ値を保持して画像のコピーできるようにした

改善点 結果 ダウンロード先 インストール方法 Visual Studio 2019で.NET Coreや.NET 5の場合は .NET Coreより古い.NET Frameworkとかだと少し違うみたいで 概ね期待通りに動くけど 改善点 表示した画像をクリップボードにコピーするときに、アルファ値を正…

アルファ値を失わずに画像のコピペできた、.NET WPFのClipboard

半透明画像のコピペ結果 Clipboardクラスにはクリップボードに画像をコピーするSetImageと、クリップボードから画像を取得するGetImageがあるけど、これを使うとピクセルのアルファ値が255(完全不透明)か、0(完全透明)に変換されてしまう テストに使った画像…

WPF、画像から複数箇所を矩形(Rect)に切り抜いて、それぞれ位置を合わせて1枚の画像にしてファイルに保存する

表現が難しい、百聞は一見にしかず 元の画像と、切り抜き後の画像 こういうの 作っている環境 Visual Studio Community 2019 Windows 10 Home WPF .NET Core 5 C# 2021WPF/20210124_画像の切り抜き、複数画像を1枚にする github.com MainWindow.xaml

いろいろな局所範囲しきい値で画像の2値化を試してみた

局所範囲(注目ピクセルの近傍ピクセル)からしきい値を計算して2値化、この前は平均値をしきい値にしたものだった。今回はそれ以外の計算方法をググって、いくつか試してみた 使ったアプリは 20200422_局所しきい値で2値化.zip github.com 画像ファイルドロッ…

ガンマ補正してから黒灰白の3色に減色+ディザリングしてみた、グレースケール画像

前回の続きで、今回は3色に減色、3色は0, 127, 255 ディザリングはいつもの誤差拡散FloydSteinberg方式 github.com 今回のアプリ ダウンロード:20200507_ガンマ補正してから3色誤差拡散.zip 今回のアプリ 画像ファイルドロップで画像表示、カラー画像もPixe…

ガンマ補正してから画像の2値化ディザリングしてみた

2値化ディザリングするときにガンマ補正をしないと、元の画像より明るい画像になる 輝度値がそれぞれ 0(黒) 255(白) の2値を使って、その中間になる128(灰色)の画像をディザリング処理すると 128(灰色) 2値化ディザリング 元の画像よりかなり明るく見える、…

局所的平均値をしきい値として2値化、局所範囲ピクセルの合計は差分計算で高速化

2値化するときに使うしきい値の計算を、注目ピクセルの周囲のピクセルの値を使ってする 範囲は1指定なら3x3ピクセル、2なら5x5、3なら7x7とするようにして 計算は平均値にしてみた 範囲1で注目ピクセルの座標が(1,1)のとき 3x3ピクセルの平均値は162.2 = (14…

減色テスト、グレースケール版その4、誤差拡散すると誤差蓄積されすぎて色が流れたようになる問題

誤差拡散法 誤差蓄積 誤差拡散法を使って減色できるようにした、方式はフロイドスタインバーグ 20200327_減色テストグレースケールvar.1.3.zip github.com 誤差蓄積されすぎ問題 この画像を2色に減色する、減色用のパレットを作成 2色は161と97が選ばれた、…

減色テスト、グレースケール版その3、Kittlerの方法でCube分割を追加した

github.com 20200327_減色テストグレースケールver.1.2.zip パレットの色を昇順ソートできるようにした Cube分割方法にKittlerの方法を追加した チェックを入れたパレットはパレットリストクリアしても残すようにした Kittlerの方法 大津の方法と比べてみる …

画像を1bpp(1bit)白黒画像に変換するアプリver.1.2.1

github.com 20200324_画像を白黒2値に変換ver.1.2.1.zip しきい値設定にこの前テストしたKittlerの方法を追加した 普通かな、大津の方法とそれほど変わらない 明るい画素(253以上)が多い画像 Kittlerの方法だとしきい値は249とかなり大きくなった 0~255まで…

Kittlerの方法でしきい値を求めるのを、エクセル2007とC#WPFで書いてみた

ヒストグラムを2分する時のしきい値はどこが最適なのかを求める この場合なら左右対称なので真ん中 しきい値を4にして0~3と4~7に2分すれば丁度いい それぞれの範囲の値から平均値と分散を計算して、それを使って正規分布をグラフにすると こんな感じのがで…

画像の2値化の誤差拡散処理の走査を左右交互

caca.zoy.org 昨日に続いて、こちらを参考にして処理の方向を左右交互にするのを試した 昨日の記事では処理の方向は偶数行、奇数行ともに右進行だったのを、今回は奇数行を左進行にしてみる、これで処理の方向は左右交互になる 左進行時の誤差拡散 右進行と…

誤差拡散法を試してみた2回め

誤差拡散 Libcaca study - 3. Error diffusion こちらを参考にして試してみた 左から FloydSteinberg JaJuNi(Jarvis, Judice, and Ninke) FloydSteinbergDervatives ShiauFan ShiauFan2 Stucki Burkes Sierra SierraTwoRow SierraLite Atkinson ? PixelForm…