取り組み内容
Pythonを使って白黒画像を細線化処理したいのですが、以下のコードを実行しても全く動きません。
(すみません、エラーが出たので追記します。)
実行環境はjupyternotebookです。
imgとして読み込んでいる画像は、色抽出を行った後のマスク画像(白黒)です。
https://code.tiblab.net/python/opencv/img_skeletonize
←こちらのサイトを参考にさせていただきました。
python
1import cv2 2import numpy as np 3from skimage.morphology import skeletonize 4 5img = cv2.imread('desktop/pictures/g3.jpeg') 6 7#細線化(スケルトン化) 8ske = skeletonize(~(img != 0)) 9ske_gray = (ske * 255).astype(np.uint8) 10ske_rgb = cv2.cvtColor(ske_gray, cv2.COLOR_GRAY2RGB) 11 12#結果の表示 13cv2.imwrite('desktop/pictures/2w.jpg',ske_rgb) 14 15
エラー内容
error Traceback (most recent call last) <ipython-input-14-94446e9f62b4> in <module> 8 ske = skeletonize(~(img != 0)) 9 ske_gray = (ske * 255).astype(np.uint8) ---> 10 ske_rgb = cv2.cvtColor(ske_gray, cv2.COLOR_GRAY2RGB) 11 12 #結果の表示 error: OpenCV(4.5.2) c:\users\runneradmin\appdata\local\temp\pip-req-build-_8k9tw8n\opencv\modules\imgproc\src\color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function '__cdecl cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<1,-1,-1>,struct cv::impl::A0x57b9ffbe::Set<3,4,-1>,struct cv::impl::A0x57b9ffbe::Set<0,2,5>,2>::CvtHelper(const class cv::_InputArray &,const class cv::_OutputArray &,int)' > Invalid number of channels in input image: > 'VScn::contains(scn)' > where > 'scn' is 3