2017-01-19 3 views
3

지금은 프로그램에서 binaryzation.So로 python에서 opencv를 사용하여 사진을 변경하려고합니다.하지만 집에서 문제가 끝나면 내 코드가 제 코드로 이동합니다. 사무실에서 알 수없는 오류가 발생합니다. 그래서 여기에 와서 도움을 청합니다.TypeError : src 데이터 유형 = 17이 지원되지 않습니다.

from PIL import Image 
import numpy as np 
import matplotlib.pyplot as plt 
import cv2 
im = Image.open('card.jpg') 
img = np.array(im) 
if img.ndim == 3: 
    img = img[:, :,0] 
    plt.gray() 
ret, thresh1 = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY) 


plt.subplot(222) 
plt.imshow(thresh1) 
plt.show() 

역 추적은

Traceback (most recent call last): File "D:/tensorflow/opencv.py", line 12, in ret, thresh1 = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY) TypeError: src data type = 17 is not supported

+0

역 추적 (마지막으로 가장 최근 통화) : 파일 "D : /tensorflow/opencv.py", 라인 (12), RET, THRESH1 = cv2.threshold (IMG, 50, 255, cv2.THRESH_BINARY) 형식 오류에 : src 데이터 유형 = 17은 지원되지 않습니다. –

답변

3

당신은 OpenCV의 유형 here의 목록을 찾을 수 있습니다.

type = 17은 의 3 채널 매트릭스라고도하는 이미지가 CV_8SC3이라는 것을 의미합니다. 그러나 threshold는 유형이 CV_8UC1 또는 CV_32FC1 중 하나를해야한다는 의미 만

(single-channel, 8-bit or 32-bit floating point).

받아들입니다.

imgshapedtype을 확인하고 필요에 따라 img을 조정하십시오.

관련 문제