scikit image について¶
scikit image とは¶
scikit-learn系列の画像処理、機械学習ライブラリ
基本的な使い方¶
ライブラリ / 画像 のロード¶
ライブラリのロード
import skimage
画像の読み込み
import skimage.io inpFile = "input.jpg" image = skimage.io.imread( inpFile )
画像の表示
from skimage import io from matplotlib import pyplot as plt io.imshow( image ) plt.show()
openCVとの交換¶
基本的には、
関数を読み込んで使用することと.
BGR <-> RGB の変換を忘れないこと.
OpenCV -> skimage¶
OpenCVは整数 np.uint8 ( 0-255 )型でBGR順、 skimage は小数を用いておりRGB順
import skimage.util image_sk = ( skimage.util.img_as_float( image_cv ) )[:,:,::-1]
skimage -> OpenCV¶
skimage は小数を用いておりRGB順, OpenCVは整数 np.uint8 ( 0-255 )型でBGR順
import skimage image_cv = ( skimage.img_as_ubyte( image_sk ) )[:,:,::-1]
scikit-imageにある楕円検出について¶
楕円Hough変換 等、試行錯誤の備忘録
skimage.transform.hough_ellipse() について¶
関数自体は使用可能.
ちゃんと絞った狙いの楕円に対して(大きさがだいたいわかってて、無駄なパラメータを探索せず、そもそも画像サイズも落としたデータ)、問題なく動作することを確認.
一方、計算量が膨大.とてもではないが、どこにあるかわからない楕円を検出させるのはかなり計算過多.
skimage.measure.EllipseModel()について¶
楕円検出で検索にかかるが、これは、画像ではなく、データ点群に対して使用する.
データ点群を楕円にフィットしたら、どういうパラメータ ( xc, yc, a1, a2, angle ) になるかを返却する関数なので、直接、楕円検出には使用できない.