Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我使用OpenCV在python中尝试了这段代码,但我没有';我无法理解错误消息_Python_Opencv - Fatal编程技术网

我使用OpenCV在python中尝试了这段代码,但我没有';我无法理解错误消息

我使用OpenCV在python中尝试了这段代码,但我没有';我无法理解错误消息,python,opencv,Python,Opencv,我在python和OpenCV中使用了这段代码,但我不理解错误。有人能解释一下错误信息的含义吗 img = cv2.imread('img.png',0) laplacian = cv2.Laplacian(img,cv2.CV_64F) plt.subplot(2,2,2) plt.imshow(laplacian,cmap='gray') plt.title('laplacian') laplacian = cv2.Laplacian(img,cv2.CV_64F) error:

我在python和OpenCV中使用了这段代码,但我不理解错误。有人能解释一下错误信息的含义吗

img = cv2.imread('img.png',0)

laplacian = cv2.Laplacian(img,cv2.CV_64F)

plt.subplot(2,2,2)
plt.imshow(laplacian,cmap='gray')
plt.title('laplacian')


laplacian = cv2.Laplacian(img,cv2.CV_64F)

error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\core\src\matrix.cpp:760: error: (-215) dims <= 2 && step[0] > 0 in function cv::Mat::locateROI
img=cv2.imread('img.png',0)
拉普拉斯算子=cv2.拉普拉斯算子(img,cv2.CV_64F)
plt.子地块(2,2,2)
plt.imshow(拉普拉斯,cmap='gray')
产品名称(“拉普拉斯语”)
拉普拉斯算子=cv2.拉普拉斯算子(img,cv2.CV_64F)
错误:OpenCV(3.4.1)C:\Miniconda3\conda bld\OpenCV-suite_1533128839831\work\modules\core\src\matrix.cpp:760:错误:(-215)函数cv::Mat::locateROI中的dims 0

您正在从两个绘图开始子绘图,并且只显示一个图像。所以它应该是2,2,1,而不是2,2,2。并且在显示图像后添加标题。这应该是以前的事了

必须使用plt.imshow()将图像添加到隐式地物的子地块中,然后使用plt.show()实际显示地物。(也可以先创建一个特定命名的地物,然后为其创建子地块。)


试试这个:

import cv2
from matplotlib import pyplot as plt

# read image and convert to grayscale
img = cv2.imread('img.png',0)

# compute laplacian
laplacian = cv2.Laplacian(img,cv2.CV_64F)


# show both original and laplacian using pyplot
plt.subplot(2,2,1)
plt.imshow(img,cmap = 'gray')
plt.title('Original')
plt.subplot(2,2,2)
plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian')
plt.show()

# show just laplacian using pyplot
plt.subplot(2,2,1)
plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian')
plt.show()

# or show just laplacian with no subplot specification or title
plt.imshow(laplacian,cmap = 'gray')
plt.show()

# show laplacian using OpenCV
cv2.imshow("Laplacian", laplacian)
cv2.waitKey(0)
cv2.destroyAllWindows()

请审查:


您正在从两个绘图开始子绘图,并且只显示一个图像。所以它应该是2,2,1,而不是2,2,2。并且在显示图像后添加标题。这应该是以前的事了

必须使用plt.imshow()将图像添加到隐式地物的子地块中,然后使用plt.show()实际显示地物。(也可以先创建一个特定命名的地物,然后为其创建子地块。)


试试这个:

import cv2
from matplotlib import pyplot as plt

# read image and convert to grayscale
img = cv2.imread('img.png',0)

# compute laplacian
laplacian = cv2.Laplacian(img,cv2.CV_64F)


# show both original and laplacian using pyplot
plt.subplot(2,2,1)
plt.imshow(img,cmap = 'gray')
plt.title('Original')
plt.subplot(2,2,2)
plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian')
plt.show()

# show just laplacian using pyplot
plt.subplot(2,2,1)
plt.imshow(laplacian,cmap = 'gray')
plt.title('Laplacian')
plt.show()

# or show just laplacian with no subplot specification or title
plt.imshow(laplacian,cmap = 'gray')
plt.show()

# show laplacian using OpenCV
cv2.imshow("Laplacian", laplacian)
cv2.waitKey(0)
cv2.destroyAllWindows()

请审查: