コンピュータ

OpenCVの画像フィルターを並べて実行するWPFアプリを作る「ガンマ補正」

ガンマ補正は、ディスプレイの特性や人間の視覚に合わせて、画像の明るさを調整する処理です。GammaCorrectionFilter.csusing OpenCvSharp;using Reactive.Bindings;using Reac...
コンピュータ

OpenCVの画像フィルターを並べて実行するWPFアプリを作る「ノンローカルミーンフィルタ」

ノンローカルミーン(Non-Local Means)フィルタは、画像内のノイズを除去する手法の一つで画像全体の広い範囲から似たようなパターン(テクスチャ)を探し、それらを平均化してノイズを消します。エッジや細かい模様を「画像内の別の場所にあ...
コンピュータ

OpenCVの画像フィルターを並べて実行するWPFアプリを作る「高さ指定リサイズ」

拡大の場合Cubic、縮小の場合AreaResizeByHeightFilter.csusing OpenCvSharp;using Reactive.Bindings;using Reactive.Bindings.Extensions;...
スポンサーリンク
コンピュータ

スクリーントーンを除去しグレースケール化する方法を考える

高解像度でスキャンした画像の場合、スクリーントーンの点描が、円などの図形としてはっきり認識できることがあります。スクリーントーンは、点の大きさや点同士の間隔によって明暗の階調を表現しています。このような画像を、通常のグレースケール画像として...
コンピュータ

Windowsが重いときはクリーンインストールの前にユーザーアカウントを作り直す

長期間使っていて動作が重くなってきているPCは、OSをクリーンインストールするとレスポンスが改善する場合があります。また、様々な不具合が解消されることもあるため、定期的に実施したいところですが、アクティベーションを含むセットアップ作業が大変...
コンピュータ

OpenCVの画像フィルターを並べて実行するWPFアプリを作る「カラーノイズ除去」

画像をスキャナで取り込む際、本来はモノクロの原稿であっても、カラースキャンすると赤や青などの色付きノイズが発生することがあります。モノクロ原稿の場合、理想的には RGBの値はほぼ同じ(R=G=B) になるはずですが、スキャナの特性や紙質、イ...
コンピュータ

OpenCVの画像フィルターを並べて実行するWPFアプリを作る (処理手順の保存・再現付き)

画像ファイルを OpenCVのフィルター機能で加工する場合、通常は複数のフィルターを順番に実行することになります。例えば、グレースケール化ノイズ除去ぼかし処理2値化リサイズといった処理を組み合わせて画像を加工します。また、画像の内容によって...
コンピュータ

WPFヘルパー:DisposeDataContextBehavior.cs – Windowのクローズ時DataContextをDispose()する

DisposeDataContextBehavior.csusing System;using System.Windows;namespace Maywork.WPF.Helpers;public static class Dispose...
コンピュータ

C# JSONで派生クラスのコレクションをシリアライズ・デシリアライズする方法(リフレクションで自動生成)

JSON形式でシリアライズするということは、オブジェクトを文字列として表現することを意味します。文字列化できるということは、その内容をテキストファイルとして保存することで、データを永続化することができます。また、保存された文字列をデシリアラ...
コンピュータ

C# Reflectionで派生クラスを自動登録する(Plugin型アーキテクチャ)

クラスを定義するだけで勝手に使われるPluginのような振る舞いのサンプルコードを作成しました。abstract class BaseClass(){ abstract public void Apply();}class DerivedC...
コンピュータ

dotnet newで自分用WPF MVVMテンプレートを作る

WPFアプリを何度も作っていると、毎回同じファイルを用意したくなります。 例えば、MainWindowViewModel.cs、RelayCommand.cs、 そしてMainWindow.xamlのDataContext設定などです。 こ...
コンピュータ

WPFヘルパー:FreeDraw.cs – Canvas上にフリーハンドで線を引くヘルパー(Attached Property)

FreeDraw.csusing System.Runtime.CompilerServices;using System.Windows;using System.Windows.Controls;using System.Windows...
コンピュータ

WPFのCanvasにフリーハンドでPathの線を引くサンプルコード(コードビハインド)

Canvas上でマウスでお絵描きが出来ないか試作。MainWindow.xaml.csusing System.Windows;using System.Windows.Input;using System.Windows.Media;us...
コンピュータ

C#のnamespaceで名前を分ける理由

C#では、クラスや構造体などの型をまとめるためにnamespace(名前空間)という仕組みがあります。通常はアプリケーションごとにnamespaceを決めて、そこにクラスを配置します。namespace MyApplication{ cla...