############################################################## 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との交換 ========================================================= * 基本的には、 1. 関数を読み込んで使用することと. 2. 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 ) になるかを返却する関数なので、直接、楕円検出には使用できない.