2016/08/27 Python2.7 RGB配列からHTMLなどに使われる16進数表現へ color = (176,224,0) html_color = '#%02X%02X%02X' % (color[0],color[1],color[2]) 16進数表現からRGB配列 c = '#646464' color = (int(c[1:3],16),int(c[3:5],16),int(c[5:7],16))
PythonでOpenCVを使ったラベリング処理 前回の講座ではPythonでOpenCVを使わずにラベリング処理を学び、ラベリングの仕組みを理解できたかと思います。 今回は「PythonでOpenCVを使ったラベリング処理」を学んでいきます。 それぞれのバージョンはPython 3.8.2、OpenCV 4.2.0になります。また、今回の記事の内容はOpenCVの公式ドキュメントを参考にしています。 OpenCVでラベリング処理 OpenCVに実装されているラベリング処理は大きく分けて、 ①簡易版ラベリング(connectedComponents) ②詳細版ラベリング(connectedComponentsWithStats) 以上の2種類があります。 それぞれの違いと具体的な使い方について説明します。 簡易版ラベリング処理 簡易版は、戻り値がラベル数と入力画像と同じ大きさで、ラベル番号
Watershedアルゴリズムとは、くっついているものを分離したりなど、 古典的領域分割アルゴリズムです。分水嶺アルゴリズムとも言われています。 OpenCVのWatershedアルゴリズムをちょっと試してみようと 思ったら、参考文献やWebページ見ても良くわからなった。 サンプルや資料をひたすら読む。 距離変換関数 distanceTransform サンプルプログラム中に必ず、distanceTransform()があった。 これって何?「近似距離または正確な距離を求めます」と解説にはあった。 distanceTransform() 良く分からないので、白真円の二値画像を距離変換してみます。 二値画像を距離変換した結果の画像です。 黒い部分からの距離が値となっているものを画像としました。 結局、中央部を二値化で求めるだけ、分離の初期とりつき 位置を求めようとして使っていたので、補助的な
# キュービック補間 + 外れ値塗りつぶし + 極座標へリニアマッピング flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LINEAR # 引き数:画像, 変換後サイズ(幅、高さ)、中心座標(X座標、Y座標)、半径、変換フラグ linear_polar_image = cv2.warpPolar(image, (300, 1000), (480, 270), 220, flags) # 逆変換(リニア) flags = cv2.INTER_CUBIC + cv2.WARP_FILL_OUTLIERS + cv2.WARP_POLAR_LINEAR + cv2.WARP_INVERSE_MAP linear_polar_inverse_image = cv2.warpPolar(linear_polar_im
scikit-image is a collection of algorithms for image processing. It is available free of charge and free of restriction. We pride ourselves on high-quality, peer-reviewed code, written by an active community of volunteers. If you find this project useful, please cite: [BiBTeX] Stéfan van der Walt, Johannes L. Schönberger, Juan Nunez-Iglesias, François Boulogne, Joshua D. Warner, Neil Yager, Emmanu
注意:結構この記事読んでくれる方が多いんですが、こちらの記事に書いてあるコードだと激烈に遅いので、アルゴリズムの説明を読み終わったらこっちのコード使ってください。 細線化は、(主には2値化した)画像を幅1ピクセルの線画像に変換する操作です。 用途は色々あるのですが、画像処理ライブラリのOpenCVになぜか細線化のメソッドが無かったので、 勉強も兼ねて自分で実装しました。 速さが欲しい場合こちらへどうぞ。 #細線化のアルゴリズム 細線化にはいくつかのアルゴリズムが提案されています。 田村のアルゴリズム Zhang-Suenのアルゴリズム Nagendraprasad-Wang-Guptaのアルゴリズム それぞれ癖があるのですが、 今回は2番のZhang-Suenのアルゴリズムを使いました。 (ロジックが簡単で書きやすそうだったので) #Zhang-Suenのアルゴリズム 細線化に用いる画像は
こうやって数字だけを取り出したいです。 青い四角の4頂点の座標がわかればアフィン変換を実施して、数字だけを取り出すことができます。4頂点の座標を自動で取得したいと思います。 試行錯誤の記録を残しておきます。(最終的にはarucoマーカーを使うべきとの結論に至りました) 試行1 RGBの青色だけを取り出せばいいのではないか? 青色の枠は、Bの数値が高いのでそれを利用してedge detectionをすればいいのではないか。 img = cv2.imread("C:\\Users\\tegaki_1.jpg") img_resize = cv2.resize(img, (img.shape[1]//7,img.shape[0]//7)) img_B = img_resize[:,:,0] cv2.imshow('image',img_B) cv2.waitKey() 結論:失敗。青が白に消えて
本記事のテーマ 概要 RasbianOS(64bit)のインストール スワップファイルの拡張 mediapipeのwheelを取得 Sampleを動かす 本記事のテーマ Raspberry PiでMediapipeをpipでインストールする 下記問題の解決 ・RasbianOSではpipでMediapipeをインストールできない ・python-opencv-contribをインストールすると強制終了する 概要 今回はラズパイでpip installするためのwheelというものを作ってくださっている方がいるという情報を得ましたのでその方法を使用します。 主な流れは下記記事を参考にしました。 Raspberry Piで手軽にMediaPipeを楽しむ方法 RasbianOS(64bit)のインストール Raspberry Pi Imagerを使ってSDカードに焼いているのですが、64ビット
目的¶ このチュートリアルでは オプティカルフローの概念と,Lucas-Kanade法を使ったオプティカルフローの計算方法を学びます. 同画像中の特徴点の追跡のために cv2.calcOpticalFlowPyrLK() 関数などを使います. オプティカルフロー(Optical Flow)¶ オプティカルフローとは物体やカメラの移動によって生じる隣接フレーム間の物体の動きの見え方のパターンです.各ベクトルが1フレーム目から2フレーム目への変位ベクトルを表す2次元ベクトル場で表現されます.以下の画像(画像引用: Wikipedia article on Optical Flow) を見てください.
Overview 画像/音声処理をリアルタイムで行う、Webブラウザから利用できるアプリをStreamlitで作る方法を解説します。 StreamlitのおかげでPythonだけでwebアプリが作れます。さらに、一番簡単な例なら10行程度のPythonコードで、webカメラを入力にしてブラウザから利用できるリアルタイム画像処理アプリケーションになります。 Webベースなのでクラウドにデプロイでき、ユーザに簡単に共有して使ってもらえ、UIもイマドキで綺麗です。 人物・物体検知、スタイル変換、画像フィルタ、文字起こし、ビデオチャット、その他様々な画像・音声処理の実装アイディアをデモ・プロトタイピングするのになかなかハマる技術スタックではないでしょうか。 Webブラウザから利用できる物体検知デモの例。実行中に閾値をスライダーで変えられる。オンラインデモ🎈 同様にスタイル変換デモの例。実行中にモ
テクスチャの認識 次の問題どのように解きますか? もちろん人間が見れば④番だというのはすぐにわかりますが、AI(プログラム)を使ってやろうとすると少し考える必要があります。いろいろなやり方はあるかと思いますが、軽量で低コストなLocalBinaryPatternを使ったやり方を紹介します。 Local Binary Patternとは 1994年にフィンランドにあるオウル大学のT.Ojalaさん達によって提案1された特徴量です。LocalBinaryPattern(LBP)はその名前のとおり、画像の局所的な表現を特徴量としたもので、各画素を周囲の近傍画素と比較した相対値で構成されています。演算コストが低くて、画像の濃淡値の変動に強いといった特徴があり、1994年の最初の提案以降もいろいろな改良が加えられています。特に非ディープラーニング系では、顔画像認識や画像検索やテクスチャ分割、および動
Mac(Intel)へのインストール Python環境には、MiniForgeを使っています。以下記事参照ください。 MiniForgeのセットアップが終わったら、ドキュメントを参考にインストールします。 具体的には、以下コマンドでMiniForge環境に関連ライブラリとdepthaiライブラリをインストールします。 $ conda create --name depthai python=3.8 $ conda activate depthai $ bash -c "$(curl -fL http://docs.luxonis.com/_static/install_dependencies.sh)" $ python3 -m pip install depthai Mac(Apple Silicon)へのインストール Apple Siliconでもセットアップできました。 以下を参考に
image = cv2.imread('XXXXXXXX.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) results = hands.process(image) process()に画像投げ込んだら、手のランドマークをゲット🦔! ※別途、描画処理が必要です。 CPU動作でもかなり早い! むしろGPU対応していない気がする(ドキュメントのどっかに非対応な旨が書いてあるはあず、、、 MediaPipe(Pythonパッケージ版)がサポートする機能(2020/12/17時点) Pythonパッケージ版のMediaPipeは、現時点で以下の4機能をサポートしています。 Hands Pose Face Mesh Holistic(Pose, Face Mesh, Handsを一度に推定) MediaPipe(Pythonパッケージ版)
東京大学は6月15日、一般的なデジタルカメラの画像から、鉢植え植物の3次元データを高精度に自動測定するPythonパッケージ(EasyDCP:Easy Dense Cloud Phenotyping)を開発し、公開したと発表した。 EasyDCPを利用した測定の大まかな流れ 資料:東京大学 同大学によると、近年は植物の3次元形質を非破壊的に測定するための手法が発展してきているが、既存のシステムは高価であり、大規模な施設や専門的な装置が必要といった理由から、生態学の分野ではそれらのシステムがほとんど用いられてこなかったという。 しかし、生態学的研究において草丈、投影葉の面積、草姿など植物の形に関する測定は非常に重要であり、鉢植えの植物を安価で高速に測定するシステムが必要とされていた。そこで同大学は、一般的なデジタルカメラと、市販およびオープンソースのソフトウェアを組み合わせたパイプライン(E
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く