午後わてんのブログ

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

#ソフトウェア

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

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

WPFのListBox、ItemTemplateで表示変更したListBoxを動的作成したいのでXAMLじゃなくてC#コードで書いてみた

ListBoxを動的追加したい、それもItemTemplateで表示を変更したListBox、さらにBindingも ボタンクリックでListBox追加される アプリのコードとダウンロード先 ファイル名:20200317_ListBox.zip github.com ListBoxの設定をXAMLで書いた部分 <ListBox x:Name="MyListBox1" ItemsSource="{Binding}"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> </stackpanel></datatemplate></listbox.itemtemplate></listbox>

C#.NET CoreでSIMDを使ってドット積、byte型配列ならMultiplyAddAdjacentが速かった

値は全て255の要素数1千万のbyte型配列、これのドット積を求めるのに色々試してみた SIMDを使わない普通の掛け算と足し算 System.NumericsでSIMD Dot System.Runtime.IntrinsicsでSIMD AVX Multiply + Add SSE2 MultiplyAddAdjacent FMA MultiplyAdd SSE41 D…

クリップボードの中にある画像をWPFで取得してみた、Clipboard.GetImage()だけだと透明になる

WPFのClipboardはイマイチな感じで、画像を取得するにはGetImage()を使うんだけど、普通の画像が完全透明になってしまうことがある 透明にならないように取得するには blogs.yahoo.co.jp こちらで紹介されているように Streamに一時保存して読み直すか、問答…

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

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

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

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

WPF、マウスドラッグ移動でThumbのサイズ変更

サイズ変更できるThumb Thumbの右、下、右下でマウスカーソルを矢印カーソルに変更して、矢印カーソルのときにドラッグした場合にサイズ変更している github.com

DrawLinesで直線の描画と、その頂点を表示してマウスドラッグ

Windows FormアプリをVisual Basicで マウスドラッグでラベルコントロールの移動と直線の描画 2014/12/19は5年前 gogowaten.hatenablog.com このときと同じなんだけど、書き直してみた 直線はGraphicsクラスのDrawLinesを使って描画 DrawLinesはPointの配列…

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だとぼやけたのがはっきりわか…

エクセルで2次のガウス関数(確率密度関数)、正規分布関数のNORMDIST

前回からの続き 2次の確率密度関数(ガウス関数)は1次同士を掛け算したものでいいらしい 変数xと変数yだった場合 こうなるみたい エクセルならNORMDIST関数2つの掛け算になって =NORMDIST*NORMDIST これだけ 標準偏差=1のときx,yが-2~2までのガウス分布 …

エクセルで1次のガウス関数(確率密度関数)、正規分布関数のNORMDIST

1次元のガウス関数をエクセルで 前回の画像のぼかし処理で使った 3x3のガウスぼかしのカーネル ガウシアンフィルタとかマスクとかも呼ばれる これ 等高線のグラフにして横から見る 上から 5x5のカーネルの場合 中心の注目ピクセルに近いほど重みが増す それ…

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

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

画像ぼかし処理、普通のぼかし処理では画像によってイマイチな結果になる

カラー画像のぼかし処理するアプリ 元画像 これを ぼかし処理(色の補正なし) ぼかし処理(色の補正あり) 補正の有無での違いはこの画像では感じられないねえ ぼかし処理での色の補正 gigazine.net ぼかし処理でググっていたらこんな記事を見かけた なんでも普…

画像のぼかし処理、注目ピクセルとその上下左右の平均値に変換

ウィンドウに画像ファイルドロップで 画像が表示される カラー画像もグレースケールで表示される ぼかし上下左右ボタンを押すとぼかし処理される 処理の重ねがけ 5回ぼかし処理したところ 元画像とぼかし処理後画像の切り替え 画像を左クリック押している間…

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

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

Visual Studio 2019 Communityをインストールした

起動直後のスタート画面、ずいぶんシンプルになった 最近開いた項目には2017で開いていたものが並んでいる 2017のスタート画面、こっちのほうがいいかなあ、チュートリアルはあったほうがいいと思うのは、初めて触ったVisual Studio 2010にあったものが素晴…

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

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

WPFで図形の円弧🌙、🍕扇形パイ形、🍩ドーナツ型(アーチ形)を表示してみた、ArcSegment

ArcSegmentを使って円弧、パイ形、ドーナツ型(アーチ形)を表示してみた 名前は円弧と扇形はいいと思うけど ドーナツ型なのかアーチ形なのか、また別の名前があるのかも でもがいいなあってことで関数名はDonutにした デザイン画面、MainWindow.xaml MainWind…

切り抜きClip、GeometryGroupとCombinedGeometry

最大3つのGeometryを組み合わせてClip GeometryGroupではFillRule CombinedGeometryではGeometryCombineModeをいくつか組み合わせて 四角形をClip表示してみた コントロール要素のClipプロパティにGeometryを指定すると切り抜き表示になる アプリ自身のClip…

画像の色相の状態をレーダーチャートふうに表示してみた

画像の上にあるくしゃくしゃしたのがそれ 想像していたのよりしょんぼりした感じなのができあがった 要素数は360で作成 レーダーチャート エクセルのレーダーチャート これの要素数は11 HSVのSとVをMAXにしてH(色相)を際立たせた感じにする ニセサーモグラフ…

WPF、アプリの実行ファイルに画像ファイルを埋め込んで、それを取り出して表示するまでの手順メモ

デザイン画面 画像を表示するようのImageを追加しただけ using System.Windows; using System.Windows.Media.Imaging; namespace _20190331_画像埋め込み { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Syste…

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

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

ListBoxのItemTemplate(DataTemplate)をC#コードで

デザイン画面 MainWindow.xaml MainWindow.xaml.cs using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; using System.Windows.Media.Imaging; //ListBoxの要…

無限の透明市松模様をWriteableBitmapとImageBrushのタイル表示で作成

ウィンドウのサイズに合わせて背景の市松模様が表示される どこまでも続く透明市松模様 デザイン画面 MainWindow.xaml GridにMyGridっていう名前をつけただけ MainWindow.xaml.cs using System.Windows; using System.Windows.Media; using System.Windows.M…

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

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