当我使用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 is read-only“如何更改此处的代码以避免这种情况?
发布于 2019-03-17 15:24:08
此行似乎是多余的,并导致错误,请删除它:
grayImage = img发布于 2020-12-14 23:27:24
不确定PIL库,但是如果它是基于numpy数组的,可以试试这个(https://numpy.org/doc/stable/reference/generated/numpy.copy.html):
grayImage = img.copy()这将通过初始化一个完全不同的实例来创建一个完整的副本,而不是引用它(使用'=‘操作符来引用它)
https://stackoverflow.com/questions/55204505
复制相似问题