gpt4 book ai didi

python - Python OpenCV写入0字节图像取决于执行目录

转载 作者:行者123 更新时间:2023-12-02 17:39:21 26 4
gpt4 key购买 nike

我写了一个小脚本,将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')

有人可以解释这种行为吗?
非常感谢!

最佳答案

您正在使用以下行打开要使用的image:

img = cv2.imread(name, 0)

而且由于您的 script总是使用以下行调用 function:
sw('schwarn.jpeg')

您始终尝试从 和运行img的目录中打开 schwarn.jpg: script。您所有的 os.path联接都会影响 grayscale图像的输出位置-而不是原始图像的读取位置。

这意味着,由于程序尝试使用与运行 img相同的 directory打开 script,因此,当您在与 img相同的目录中运行 script时,只能加载。因此,当您尝试在其他 img中运行 script时,无法读取 directory并且生成的 img图像不包含任何内容...

关于python - Python OpenCV写入0字节图像取决于执行目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46873911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com