meg*_*ger 5 python opencv numpy
我对opencv有一个奇怪的问题.我在使用jupyter笔记本时没有问题,但在尝试运行这个Sublime时也没有问题.
错误是:OpenCV错误:cvtColor中的断言失败(深度== CV_8U ||深度== CV_16U ||深度== CV_32F),文件/ Users/jenkins/miniconda/1/x64/conda-bld/work/opencv- 3.1.0/modules/imgproc/src/color.cpp,第7935行
import numpy as np
import cv2
img = [[[150,160,170], [150,32, 199], [145, 212, 234], [145, 212, 234]],
[[150,190,170], [150,32, 199], [145, 212, 234], [145, 212, 234]],
[[150,160,170], [150,32, 199], [145, 212, 234], [145, 212, 234]],
[[150,160,170], [150,32, 199], [145, 212, 234], [145, 212, 234]]]
img = np.array(img)
def grayscale(x):
# plt.imshow(gray, cmap='gray')to show on screen
# turns dim from (32,32,3) to (32,32)
return cv2.cvtColor(x, cv2.COLOR_BGR2GRAY)
img2 = grayscale(img)
Run Code Online (Sandbox Code Playgroud)
Dan*_*šek 16
您需要在创建阵列时指定数据类型.
当我在这里尝试这个代码并检查dtype
时img
,我看到以下内容:
>>> img.dtype
dtype('int32')
Run Code Online (Sandbox Code Playgroud)
这与要求不符cv2.cvtColor
.
初始化图像的值范围似乎为0-255,这与数据类型相对应uint8
.
所以,就这么做
img = np.array(img, dtype=np.uint8)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11811 次 |
最近记录: |