Python 错误是什么;ValueError:分配目标是只读的;?

Python 错误是什么;ValueError:分配目标是只读的;?,python,rgb,bgr,Python,Rgb,Bgr,当我使用cv2.imread()打开jpg文件时,它有时会失败,这可能是由于我使用的BGR格式。所以我切换到PLT使用RGB import matplotlib.pyplot as plt import numpy as np def rgb_to_gray(img): grayImage = np.zeros(img.shape) R = np.array(img[:, :, 0]) G = np.array(img[:, :, 1])

当我使用cv2.imread()打开jpg文件时,它有时会失败,这可能是由于我使用的BGR格式。所以我切换到PLT使用RGB

import matplotlib.pyplot as plt
import numpy as np

def rgb_to_gray(img):
        grayImage = np.zeros(img.shape)
        R = np.array(img[:, :, 0])
        G = np.array(img[:, :, 1])
        B = np.array(img[:, :, 2])

        R = (R *.299)
        G = (G *.587)
        B = (B *.114)

        Avg = (R+G+B)
        grayImage = img

        for i in range(3):
           grayImage[:,:,i] = Avg

        return grayImage       

image_file = 'C:\A.jpg';
img = plt.imread(image_file,0)
gray = rgb_to_gray(img).copy()

当我将图像转换为灰度时,我是如何得到一个错误的:“ValueError:assignment destination是只读的”我如何在此处更改代码以避免它?

此行看起来多余并导致错误,请删除它:

        grayImage = img

不确定PIL库,但如果它基于numpy数组,请尝试以下()方法:

这将通过初始化一个完全不同的实例而不是引用它来创建一个完全副本(使用“=”操作符引用它)


请添加完整的错误消息。此代码似乎有效。image\u文件包含转义序列“\A”您应该使用原始字符串或双精度\\ grayImage=img的用途是什么?类似
C:\A.jpg
的声音可能重复是只读的(权限或代码级别)。
grayImage = img.copy()