Pythonで測定顕微鏡を作ってみた

今日はPythonで作成した測定顕微鏡をご紹介します。物体測定、画像保存、画像トリミング、画像処理など実務で使用できる便利な機能を一つにまとめました。
興味のある方は参考にしてください。
本プログラムの特徴
・USBカメラに映った物体の長さを測定することができます。
・横方向と縦方向を各々測定することができます。
・気になる箇所だけをトリミングして保存することができます。
・画像処理機能を使い物体の輪郭や凹凸を明確にすることができます。
実行画面
以下の映像をご覧ください。
ポイント解説
1.GUIはPySimpleGUIを使用
各チェックボックスや決定ボタン類は全てPySimpleGUIで作成しています。
簡単なコードで好きな画面レイアウトが作成でき、ボタンの配置も自由自在です。
2.取込み画像はレイアウトに合わせスライスしてからリサイズ
USBカメラの画素数は最低200万画素~800万画素くらいが使い易いです。
画素数が多すぎるとPCの処理が重くなり画像表示に遅延が発生し易いためです。
ただし、細部のディテールを明確にしたい場合は高画素(≧500万画素)のUSBカメラが望ましいです。
ちなみに、YouTubeの映像は800万画素のカメラで撮影しています。
GUIのレイアウトに合わせるため、USBカメラで取り込んだ画像は正方形にスライスし、900×900pxにリサイズして表示させています。高画素のカメラで撮影すると、リサイズしてもディテールが失われ難いのが良いです。
3.測定顕微鏡として使用するためにはキャリブレーションが必須
画面のピクセル数と実際の長さ(何mmに相当)との整合が必要です。
これは一般的に販売されている数百万円する測定顕微鏡でも実施しています。基本的にキャリブレーションの考え方は同じで、搭載するカメラや処理ソフトの付加価値で値段が付けられています。重要なのは、キャリブレーション処理の考え方でそれを理解することに価値があります。
本プログラムのコードを見ていただければ、処理の内容が理解できると思います。
SHOP紹介
本プログラムの完全版ソースコードを以下のショップで販売しています。
基本的なコードは、これまで本ブログで紹介してきたものと大きな違いはありませんが、コードの組み合わせやコードの流れにオリジナリティがあります。本プログラムを使ってみたい方やソースコードを学びたい方は是非購入して確認してみてください。
必ず新しい発見があると思います。
おすすめ機材
YouTubeで撮影しているUSBカメラは以下を使用しています。理由は本文にも記載しましたが、高画素のカメラの方が細部のディテールが失われ難いため、エッジを判別し易く正確な測定ができるからです。
測定顕微鏡のレンズは以下を使用しています。理由は光学倍率:0.28~2倍で被写界深度が最大7mmかつ作動距離が105mmと比較的小型(幅:数mm~十数mm、高さ:数mm)の部品検査に適しているからです。もちろん、測定したい物体のサイズを考慮し組み合わせるレンズを選定する必要があります。
照明は以下を使用しています。理由は物体に照射される光が均等・均質である程、エッジや凹凸が見やすくなり正確な測定ができるからです。本照明は白色LEDを使用しており、ちらつきもほとんど感じられず長寿命でコストパフォーマンスが高いと感じています。
レンズを保持するステージは以下を使用しています。理由は剛性が高いからです。剛性が高い方が高倍率観察時に映像ブレが少なくなり、測定し易くなります。
ディスカッション
コメント一覧
まだ、コメントがありません