我写了一个小脚本将RGB图像转换为灰色。
当我以终端形式当前目录(python3 image.py
)运行脚本时,它完全正常。
但是当我从像python3 proc/image.py
这样的目录中朗读它时,它会创建一个0字节大小的结果图像。
这是代码image.py
import os
import numpy as np
import cv2
def sw(name):
dir_path = os.path.dirname(os.path.realpath(__file__))
img_path = os.path.join(dir_path, name)
print(img_path)
img = cv2.imread(name, 0)
rslt_path = os.path.join(dir_path, "schwarn_g.jpeg")
print(rslt_path)
cv2.imwrite(rslt_path, img)
return img
if __name__ == "__main__":
sw('schwarn.jpeg')
有人可以解释这种行为吗? 非常感谢!
答案 0 :(得分:0)
您正在使用以下行打开要处理的image
:
img = cv2.imread(name, 0)
由于您的script
始终使用此行调用function
:
sw('schwarn.jpeg')
您总是试图从运行img
的同一目录中打开schwarn.jpg
:script
。您os.path
加入的所有内容都会影响grayscale
图像的输出位置 - 而不是原始图像的读取位置。
这意味着,由于该计划尝试在您运行img
的同一directory
中打开script
,因此img
只能 < / strong>在与script
相同的目录中运行img
时加载。因此,当您尝试在另一个script
中运行directory
时,无法读入img
并且生成的greyscale
图片没有内容...