2

cv2.imread() を使用して jpg ファイルを開いているときに、使用した BGR 形式が原因で失敗することがあります。そこで、RGB を使用するために PLT に切り替えました。

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: 割り当て先は読み取り専用です」これを回避するには、ここでコードを変更するにはどうすればよいですか?

4

2 に答える 2