【问题标题】:CV2 saves pictures in BlackNWhiteCV2 将图片保存为 BlackNWhite
【发布时间】:2019-08-23 20:53:44
【问题描述】:

我正在尝试发送带有sockets 模块和pickles 的图片。没问题,但收到的图片是 bnw ......有人可以告诉我,我做错了哪一部分?

先设置参数:

encode_param = [int(cv2.IMWRITE_JPEG_QUALITY)]

读取文件

img = cv2.imread('th.jpg', 0)

编码

 ret, img = cv2.imencode('.jpg', img, encode_param)

转储,然后将其与pickles 一起发送到我的client 一侧

 msg = pickle.dumps(img, 0)

在我的client side 上 - 打开、解码并写入文件

        frame=pickle.loads(message, fix_imports=True, encoding="bytes")
        frame = cv2.imdecode(frame, cv2.IMREAD_COLOR)
        cv2.imwrite(f'{message_header}.jpg',frame)

但保存的文件是 bnw.... 可能是哪里出了问题?

【问题讨论】:

    标签: python python-3.x pickle opencv3.0 cv2


    【解决方案1】:

    问题在于这条线。 img = cv2.imread('th.jpg', 0)改成下面这样。

    img = cv2.imread('th.jpg', 1)

    根据documentationimread 中的参数0 与灰度相关,1 与彩色图像相关。

    【讨论】:

    • 谢谢,这行得通,但图片的图形变得很糟糕......现在看起来像素化了......套接字问题或简历?
    • 好的,这是套接字问题,默认质量 95 和 RGB 发送的数据太多,所以我将其降低到 70,它工作正常
    猜你喜欢
    • 2020-04-21
    • 1970-01-01
    • 2022-07-12
    • 2015-05-10
    • 2020-02-27
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多