从notepad++和OpenCV函数执行python代码时出错

2024-05-08 18:26:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一段简单的代码,在命令行中执行时没有任何问题(Python Anaconda 3.5):

import cv2
image = cv2.imread('image.jpg')
a=image.shape[0]
b=image.shape[1]
print("image size " + str(a) + " by " + str(b))

当它运行时,您将得到预期的:

image size 3254 by 4928

但是,当从notepad++7.8.1、Windows 7)运行时,我得到:

Traceback (most recent call last):
  File "C:\Users\Me\Desktop\test.py", line 3, in <module>
    a=image.shape[0]
AttributeError: 'NoneType' object has no attribute 'shape'

C:\Program Files (x86)\Notepad++>

这似乎很奇怪。Notepad++中python的快捷方式位于 C:\Users\Me\AppData\Roaming\Notepad++,在'快捷方式.xml'. 这是:

 <Command name="python_35" Ctrl="no" Alt="no" Shift="no" Key="0">cmd /K python &quot;$(FULL_CURRENT_PATH)&quot;</Command>

你有没有想过为什么这不管用?如果我键入'cmd/kpython',我会得到Anaconda版本的python(我想知道我的系统上是否看到了另一个版本的python)。读取图像时不会失败,因此我认为OpenCV仍在加载中。你知道吗


Tags: noimagecmdsizebyanacondacv2users
1条回答
网友
1楼 · 发布于 2024-05-08 18:26:55

解决方案:

这个问题似乎解决了问题:

Running File from Notepad Plus Plus and Current Directory

cmd/k cd/d$(当前目录)和python$(完整当前路径)

令人困惑的问题是,错误是由于尝试访问图像.形状[0]. 如果图像不存在,则imread上不会发生错误;即image=cv2.imread('图片xyz.jpg,但当您尝试访问“image”时会发生这种情况。应先检查图像是否存在,即:

import cv2
image = cv2.imread('image_not_there.jpg')
if(image is None):
    print("no image")
else:
    a=image.shape[0]
    b=image.shape[1]
    print("image size " + str(a) + " by " + str(b))

相关问题 更多 >

    热门问题