При сохранении изображений цвет в сохраненном jpg-файле неправильный (cv2.COLOR_BGR2RGB не исправляет это) - PullRequest
1 голос
/ 07 апреля 2019

Моя программа должна сделать снимок, а затем сохранить его в указанной папке.Он делает все это, однако цвет сохраненного файла jpg далек от изображения, которое он отображает.Я хотел бы исправить это.

Я пробовал cv2.COLOR_BGR2HSV, но я думаю, что RGB - это путь.Пожалуйста, помогите.

import cv2
import matplotlib.pyplot as  plt
import sys
def main():
    cap = cv2.VideoCapture(0)

    if cap.isOpened():
        ret, frame=cap.read()
        print(ret)
        print(frame)
    else:
        ret = False

    #I AM TRYING TO CONVERT THE COLOR USING THIS LINE OF CODE
    img1 = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)

    plt.imshow(img1)
    plt.title("Car Image")
    plt.xticks([])
    plt.yticks([])
    plt.show()

    cv2.imwrite("C:/Users/Fahim/PycharmProjects/CarPark/Car_Image.jpg", img1);





    cap.release()



if __name__ == "__main__":
    main()

Я хотел бы сохранить изображение, как оно отображается

1 Ответ

1 голос
/ 07 апреля 2019

Соглашения OpenCV и Matplotlib различны, поскольку они используют BGR и RGB соответственно.

Может оказаться полезным переименовать переменные, например, до frame_bgr. Явное обозначение поможет вам вспомнить, когда 1-й и 3-й каналы следует поменять местами когда вы переходите от одного к другому к другому, используя подпрограммы.

Конверсия, которую вы разместили, очень хорошая Вы можете назначить результат, например, до img_rgb.

Если вы в основном звоните cv2, тогда при написании ваших собственных функций вы можете принять соглашение BGR для всех входов и выходов, чтобы минимизировать конверсии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...