画像処理

前回はヒストグラムの可視化をしてみました。今回は、濃淡変換によって明るさやコントラストの変換等をやっていきたいと思います。 明暗やコントラストの変換を行うことでくっきりとした画像にしたり色を強調したりすることができます。今回は、入力画像の値をある一定の値の変化をさせて出力するということなので実装と結果等について書いていきたいと思います。変換方法は色々とあります。例えばγ変換やネガ・ポジ反転、ポスタリゼーションとかでしょうか。興味を持った方は調べてやってみていただければと思います。 実装について ...

画像処理

こんにちは。今回は、2値化の前にヒストグラムの実装をして、画像画素がRGBやグレースケールの段階のどのくらいの値にあるのかどうかの確認をしてみたいと思います。ヒストグラムが2値化をするときに閾値を決めるときに必要になってくるのではないかと考えたためです。 私事にはなりますが、自由時間を画像処理と英語の勉強等をして、辛くなったらマイクロマウスの調整や制御プログラムをいじったりをしてリフレッシュするということをしています。移動時間は、とある方にお勧めしていただいた"本好きの下剋上 ~司書になるために ...

画像処理

こんにちは。前回は、幾何学的変換の紹介や拡大・縮小、回転の実装を行いました。 今回は、アフィン変換の実装を行っていきます。アフィン変換の説明も前回の記事で説明しました。内容に関して確認をしたいときは前回の記事を確認していただければと思います。 アフィン変換の実装を行う 実装前の前処理の計算について アフィン変換の変換行列は以下の式で表されます。 前回の拡大・縮小や回転の実装と同様にこのまま実装を行う場合は、平行移動のことを考えると面倒なことになってしまいます。そのため、ループの中でx,yのときに ...

画像処理

こんにちは。 画像処理の基礎の勉強ということでこれまで平滑化フィルタやエッジ検出フィルタ(微分フィルタ)の勉強、実装をしてきました。今回は、画像の幾何学的変換の実装をしていきたいと思います。線形変換はよくアフィン変換と呼ばれています。包括関係的には射影変換の中にアフィン変換があってその中に線形変換やユークリッド変換があるようです。 今回は、画像の拡大・縮小の実装、回転の実装をします。次回、アフィン変換の実装をしていきたいと思います。 基礎編 線形変換の一般形 座標(x,y)の位置の点が変換により ...

開発環境

こんにちは。画像処理を始めた理由のひとつがロボットに積んであーだこーだしたかったというのがあります。今回は、IntelのRealSenseD435を使ってみました。まだ、SDKのプログラムをしっかりと読み進めていない状態ですが、Windows10の環境構築の忘備録として書いていきたいと思います。最終的にはROSで使用することになるのかな?とか考えています。 環境構築の流れに関しては、RealSenseのGithubのリポジトリに書いてあるので、詳しくはGithubのリポジトリをみていただければと ...

画像処理

こんにちは。前回は空間フィルタリングの平滑化フィルタの一種であるガウシアンフィルタと平均化フィルタを実装しました。 今回は、空間フィルタリングのエッジ抽出を行うソーベルフィルタとラプラシアンフィルタの実装、LoGフィルタの紹介をしていきたいと思います。 基礎編 エッジ抽出とは 画像中で明るさが急に変化する場所を中抽出することである。これは、画像の特徴や図形を検出したりする前の前処理として利用されるそうです。 具体的に、今回紹介するラプラシアンフィルタをかける前の原画像とラプラシアンフィルタをかけ ...

画像処理

畳み込み演算でカーネルを作成して画像をいじっていきます。OpenCVを使用すれば一行で綺麗に実装が可能ですが、ちゃんとアルゴリズムがどうなっているかどうかを理解したいということで、一つずつそれっぽく実装していきたいと思います。端の処理等はしていないので問題はありますが、今回は基礎的なアルゴリズムを勉強することが目的なので多めに見ていただければと思います。 使用する環境はOpenCV と C++を使用しています。また、OpenCVは画像の読み込みや出力、データ構造を使用しています。 基本概念 空間 ...

開発環境

いろいろとあって、画像処理のプログラムを書くことになりました。画像処理のプログラムを書く上で、有名なオープンソースのコンピュータビジョン向けのライブラリのopencvを使用してみようということで開発環境をいつも通り構築しました。インターネット上に情報が載っていますが、自分への忘備録としてここに書き残しておこうと思います。 pythonの場合はpipコマンドで簡単にopencvを使用することができるようになりますが、私はc++を使用したいと考えています。そのため、開発環境をしっかりと作らないとコン ...