Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

opencv

【python3, opencv2】2枚の画像を半透明にして重ね合わせる

img_new = cv2.addWeighted(src1=img1, alpha=0.5, src2=img2, beta=0.5, gamma=0)img1とimg2を透明度0.5ずつにして足し合わせるもしimg1の明るくて、img2が暗い場合はimg1ばかりが見えてしまうので比率を0.5じゃなくて3と0.1とかにしないといけない場合もあ…

【python3, opencv2】画像の解像度を変更したい時(縮小・拡大)

cv2.resize(img, Size,fx=0,fy=0,interpolation=INTER_LINEAR)でresizeを行う Sizeは(width, height)の順番fx, fyは拡大率とかだけど、比率を同じにしたままresizeするならなくて良い いつか使うかもしれないのでメモこれににたので、アフィン変換というのも…

【python3, opencv2】読み込んだ画像のdtypeを変更したい時

2枚の画像を比較する際に、片方はdtype=np.uint8、もう片方がdtype=np.uint16だと比較できないと怒られる ダイナミックレンジが異なるこういうときは、小さい方のダイナミックレンジの画像を大きい方に合わせるimg_oldがnp.uint8だとすると、new_fig = np.ui…

【python3, opencv】読み込んだ画像に黒の余白を追加したい

2枚の画像を比較する際に、解像度が違うことがある。 アスペクト比が同じであれば、単純にresizeして縮小・拡大すればいいが、アスペクト比が違う場合は余白を追加してそれを揃える必要があるimport cv2img_orig = cv2.imread(fname, cv2.IMREAD_UNCHANGED) …

【python3, opencv2】画像を楕円でフィットする

png画像の一部を楕円でフィットする要請があったので色々と調べた時のメモ 結局opencvで、画像の上に楕円を書いて、一番あっているものを採用することにした (要するに手でフィットした)楕円と一言で言っても回転している可能性がたかいので、それも踏まえて…

【python3】少しだけ位置ずれした2枚の画像から特徴点を抽出してずれの大きさを評価したい

opencvでできる うまくいったサンプルコード うまくいった例をメモ■ 参考 : OpenCVをつかった特徴点マッチングについて少しだけ掘り下げる基本的に↑の記事通りに動かした■ 参考 : OpenCV3とPython3で特徴点を抽出する(AgastFeature, FAST, GFTT, MSER, AKAZ…

【opencv】グレースケールにした画像をRGBにする + 真っ黒な画像を用意する

import cv2 photo = cv2.imread('hoge.png') grays = cv2.cvtColor(photo, cv2.COLOR_RGB2GRAY) rgb = cv2.cvtColor(grays, cv2.COLOR_GRAY2RGB) みたいな感じグレースケールの明るさがそのままRGBのそれぞれに割り当てられるらしい 一度グレースケールにし…

【opencv, python3】画像のコピー

img2 = img.copy() 単純にimg2 = imgとしてしまうと、オリジナルのimgも修正されてしまう・・・・ ランキング参加中です ↓クリックしていただけると嬉しいです〜ランキング参加中Python ランキング参加中HTML ランキング参加中Mac

【opencv】HSVフィルターのサンプルコード

サンプルコード import cv2 # Load an color image img_orig = cv2.imread(fname, cv2.IMREAD_UNCHANGED) img = cv2.cvtColor(img_orig, cv2.COLOR_BGR2RGB) height, width, _ = img.shape HSV_lower=[21, 67, 230] HSV_upper=[164, 210, 254] # HSVでの色抽…

colorで色を変更したい【opencv2】

普通の画像の色はRGBで表現できます例えば(0, 0, 0)は黒色、(255,0,0)は赤、(255,0,255)はピンクとかですただ、opencvではこの順番がred green blueではなくて、BGRです つまり、blue green red (逆順)ただし、 im_cv = cv2.imread('hoge.png') cv2.imwrite(…

【opencv, python3】読み込んだ画像の一部を切り取って解析したい + img[0, :]とimg[:, 0]の区別

img_origという画像があったとして、そこから一部だけを切り取りたいときは以下のような感じで最初の引数がy関連、その後がx関連 絶対、次また逆でやってしまうのでメモっておく xmin = 160 xmax = 210 ymin = 695 ymax = 745 img = img_orig[ymin:ymax, xmi…

【opencv, matplotlib】opencvで読み込んだ画像にカラーバー(colorbar)を追加して画像保存したい

(こんなん簡単だろ、と思ってましたが1~2時間はやってやっとできました・・・ なんで・・・)opencvで画像を読み込むあたりは↓を参照■ 参考 : 【python3, opencv】はじめての画像解析 fig = plt.figure(figsize = [12, 10]) fig.patch.set_facecolor('white')…

【python3, opencv】はじめての画像解析

はじめて画像解析をpythonのopen cvを使ってやることになったのでそのメモ (すでに画像解析の記事はあるので、はじめてのはおかしいが・・・・) パッケージのインストール conda install opencv 初学者向けの使えそうなリンクメモ ■ 参考 : 【OpenCV/Python…

【opencv, 画像解析】初学者向けのレクチャー記事メモ

1つ前の閾値を使った二値化について補足記事です Segmentation — Basics of Image Processing 1枚目のようなコインの画像を閾値を使って、コインの場所とそうでない場所を二値化したいときどうするか?という記事です 内部的にどう処理してるのかわかりませ…

【opencv, 画像解析】単純な閾値ではなくて、周りのデータを参照する適応的しきい値処理

何かに使えるかもしれない・・・と思ったのでメモです その性能は、リンク先の画像を見てもらうのが良いと思います 画像のしきい値処理 — OpenCV-Python Tutorials 1 documentation 前の例ではある画像に対して一つのしきい値を与えてしきい値処理をしました…

【画像解析, opencv】特徴量解析でアフィン変換の行列を逆解きしたい

1つ前の記事でアフィン変換の行列は3点と座標とその変換後の座標がわかるということを書きました この変換後の座標を手で与えれればいいんですが、そうでないときは特徴量解析を使うのも1つの手です 特徴解析について 特徴マッチングによる物体検知 - TB-cod…

【画像解析, opencv】3点の変換後の座標がわかるとアフィン変換の行列を逆解きできる

pythonでopencvを使って画像解析をするときにアフィン変換というのを使ったのでそのメモ・・・ といっても、よくまとめられてるブログ記事をメモしておくだけですが 完全に理解するアフィン変換 #Python - Qiita OpenCVでスプライトを回転させる #Python - Q…

【opencv2, python3】元々8bitの画像をunit16型で読み込んで画像をimwriteで保存すると真っ黒の画像になる

8bitの画像と16bitの画像を色々と比較したいので、8bitの方を無理に16bitとして読み込んでいる img = np.uint16(img) でできる ただ、この変更した画像をunit16型のまま保存しようとしてるのが問題っぽい (理由がよくわからんが) 画像のタイプは print(img.d…

【opencv2, python3】トーンカーブを使って、ガンマ補正とかで画像を補正したい

python+opencvで画像処理の勉強2 画素ごとの濃淡変換 #Python - Qiita 今すぐに使うことはないですが、サンプルコードが載っててわかりやすいのでメモ トーンカーブというのは、画像の明るさのヒストグラムのことみたいです これに特定の補正を掛けることで…

【opencv2, python3】hconcatで画像を3つ並べて表示したい

がうまくいかない・・・ OpenCVのhconcatがなぜかエラーになるとき #Python - Qiita めちゃくちゃ参考になるページを見つけたのでメモ 可能性のあるエラー 1. データの型があっていない print(img.dtype) で確認できる 2. データのサイズがあっていない prin…