読者です 読者をやめる 読者になる 読者になる

tataboxの備忘録

データ解析、画像解析、化学分析などなど

python+Opencvによる画像処理10(線や文字の書き込み)

画像にスケールを書き込む必要があり、線や文字の書き込み法を調べたのでメモ。 (1) 線の書き込み cv2.line(image,(start_x,start_y),(end_x,end_y),color,thickness) (2)文字の書き込み cv2.putText(image,text,(start_x,start_y),font, font size,color) …

PyQt(PySide)で画像処理その2(GUI動作設定の基本)

PyQt(PySide)で画像処理(その1) - tataboxの備忘録 前回の続き。 画像と重なるため、若干レイアウトを変更しました。 というわけで、Qtで画像を開き、画像に合わせてフレームのサイズを変更するコードです。 前回作成したpyqt_Opencv.pyと同じフォルダに…

画像解析

Opencvで面積計算。 もう少し修正するかも。

scipy+Opencv+numpyによる画像分類2

切り出したイメージからの続き。 import numpy as np import cv2 import matplotlib.pyplot as plt im = cv2.imread('bubbles.jpg') im2 = cv2.imread('bubble2.jpg',0) imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(imgray,10…

scipy+Opencv+numpyによる画像分類

ヒストグラムを利用した分類法。 定番っすね。 import cv2 import numpy as np import pylab as plt import scipy.ndimage as nd def mask_test(im): if im.ndim == 2: im2= im[0:890,:] im_gray = im2 else : im2= im[0:890,:] im_gray =cv2.cvtColor(im2,c…

python+Opencvによる画像処理11(フーリエ変換2、カラー)

2次元フーリエのコード、 numpy使うと非常に簡単でした…… import cv2 import numpy as np import pylab as plt im = cv2.imread('lena.jpg',) im1 = im[:,:,::-1].copy() im_RGB = cv2.split(im1) plt.subplot(1,4,1),plt.imshow(im1) j = 2 title = ('Red',…

OpenCVとPIL(python Image library)のデータ変換

OpenCVとPILの相互利用 OpenCVとPILのデータ変換。 PIL⇒OpenCVは下で問題なし。 import numpy as np OpenCV_data=np.asarray(PIL_data) OpenCV⇒PILは from PIL import Image PIL_data=Image.fromarray(OpenCV_data) 青画面+上下反転の残念仕様になるので対策…

python+Opencvによる画像処理9(2値化)

二値化法の比較。 import pylab as plt plt.rcParams['font.family'] = 'IPAexGothic' plt.rcParams['font.size'] = 12 import cv2 import numpy as np im = cv2.imread("cat.jpg") im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) #Adaptive Gaussian Thre…

python+Opencvによる画像処理8(フィルター)

エッジ検出のため、ブロックノイズ除去のフィルター。 詳細はこちら http://opencvpython.blogspot.jp/2012/06/smoothing-techniques-in-opencv.html import cv2 import numpy as np im = cv2.imread("lena.jpg") #カラー bilateral_blur = cv2.bilateralFil…

python+Opencvによる画像処理7(二次元フーリエ変換)

画像のフーリエ変換。 (Opencvのデモを少し修正して翻訳) 二次元フーリエ変換 全行方向にフーリエ変換した結果に対し、 さらに列方向でフーリエ変換をする。 4隅に低波数が出て見づらいので、 四隅が中央に来るよう加工する。 出た模様は一般にパワースペ…

python+Opencvによる画像処理5(画像結合とマスク)

1.重み付け import cv2 import numpy as np im1 = cv2.imread("lena.jpg") im2 = cv2.imread("lenna-image.jpg") alpha = 0.5 beta = 0.3 add = cv2.addWeighted(im1,alpha,im2,beta,0) cv2.imwrite('add.jpg',add) alphaとbetaの数値で重み付けして合成可能…

python+Opencvによる画像処理5(リサイズ)

画像の大きさを半分にするコード。 import cv2 import numpy as np def half_size(im): hight = im.shape[0] width = im.shape[1] half_size = cv2.resize(im,(hight/2,width/2)) cv2.imshow("half_size",half_size) cv2.waitKey(0) cv2.destroyAllWindows()…

python+Opencvによる画像処理4(色チャンネル変更)

色チャンネルを触ってみる。 解像度を揃えたブランクをnumpyで作成し、 分割した色空間を入れ替えて流し込む。 BlueをRedに、GreenをBlueに、 RedをGreenに入れ替え。 import cv2 import numpy as np def color_change(im): if im.ndim == 2: pass else : hi…

python+Opencvによる画像処理3(色チャンネルとヒストグラム2)

1.色チャンネルの取り出し import numpy as np import cv2 im = cv2.imread("lena.jpg") RGB =cv2.split(im) Blue = RGB[0] Green = RGB[1] Red = RGB[2] cv2.imshow("Blue",Blue) cv2.imshow("Green",Green) cv2.imshow("Red",Red) 2. 別な色チャンネル取り…

python+Opencvによる画像処理2(ヒストグラム)

続いてヒストグラム 1. opencvに集計させるパターン import cv2 import pylab as plt im = cv2.imread("lena.jpg") hist = cv2.calcHist([im],[0],None,[256],[0,256]) plt.plot(hist) plt.xlim([0,256]) plt.show() 2. ヒストグラム(matplotlib)で集計 im…

python+Opencvによる画像処理1

python+opencvのお勉強。 まずは読み込みと表示から import numpy as np import cv2 import pylab as plt im = cv2.imread('lena2.jpg',flags=0) if im is None: print "None" exit() plt.imshow(im) plt.show() import numpy as np import cv2 import pylab…