我正在嘗試從圖像中提取所有藍色通道項目,這是我的小腳本:import cv2import argparseparser = argparse.ArgumentParser(description='Process image signatures.')parser.add_argument('inputfile', metavar='InFile', type=str, nargs=1, help='input image file with signatures')parser.add_argument('outputfile', metavar='OutFile', type=str, nargs=1, help='output image file with signatures')args = parser.parse_args()img = cv2.imread(args.inputfile[0], 0)# Convert color to hsvhsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# set range for blue colorlower_range = np.array([110,50,50])upper_range = np.array([130,255,255])# apply maskmask = cv2.inRange(hsv, lower_range, upper_range)# apply colorres = cv2.bitwise_and(img,img, mask= mask)cv2.imshow('res', res)cv2.imwrite(args.outputfile[0], res)現(xiàn)在我發(fā)現(xiàn)Invalid number of channels in input image這張 jpg 圖像至少有 3 個顏色通道。完整錯誤如下:$ python c:/Users/LenovoPC/Desktop/signature_extractor-master/signature_extractor-master/blue_img_extractor.py ./inputs/in1.jpg ./outputs/output1.pngTraceback (most recent call last): File "c:/Users/LenovoPC/Desktop/signature_extractor-master/signature_extractor-master/blue_img_extractor.py", line 16, in <module> hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)cv2.error: OpenCV(4.4.0) c:\users\appveyor\appdata\local\temp\1\pip-req-build-cff9bdsm\opencv\modules\imgproc\src\color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function '__thiscall cv::impl::`anonymous-namespace'::CvtHelper<struct cv::impl::`anonymous namespace'::Set<3,4,-1>,struct cv::impl::A0x5406ba9d::Set<3,-1,-1>,struct cv::impl::A0x5406ba9d::Set<0,5,-1>,2>::CvtHelper(const class cv::_InputArray &,const class cv::_OutputArray &,int)'> Invalid number of channels in input image:> 'VScn::contains(scn)'> where> 'scn' is 1這里到底有什么問題?謝謝。
1 回答

叮當(dāng)貓咪
TA貢獻1776條經(jīng)驗 獲得超12個贊
這是因為此行在出現(xiàn)錯誤的行之前:
img = cv2.imread(args.inputfile[0], 0)
參數(shù)0
已通過,即cv::IMREAD_GRAYSCALE
。
刪除零,或使用 1 強制顏色:
img = cv2.imread(args.inputfile[0])
添加回答
舉報
0/150
提交
取消