QImage加载opencv读取的图片出错

这篇具有很好参考价值的文章主要介绍了QImage加载opencv读取的图片出错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天写opencv的时候, 突然发现一件很奇怪的事情, 用摄像头读取的图片, 用QImage加载的时候传入img.data, 一切都很正常, 但是如果我是从保存的图片读取灰度图, 传入img.data, 它会告诉我QImage不能传入memoryview, 但是我打了断点, 也打印过, 它们确实都是memoryview, 而且图片的dtype都是uint8, 就有点莫名其妙。

然后我尝试将img.data改成img.tobytes(), 问题解决, 但是又出现一个新的问题, 就是我从图片中截取一部分, 显示后, 虽然显示出来了, 但是内容却产生了形变, 而我在显示前特地用imshow显示了出来, 说明图片是正常的, 就很诡异。

加载代码如下:

ret, img = self.camera.read()
if ret:
    img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    height, width = img.shape[:2]
    img = QImage(img.data, width, height, QImage.Format_Grayscale8)
    img = QPixmap.fromImage(img)
    self.p_widget.video_label.setPixmap(img)

最后的解决办法是, 先将图片写入到文件, 然后用QImage直接从文件加载, 问题解决。

但是为什么会扭曲的问题依然不是很清楚, 如果有清楚的大佬, 麻烦解答一下。

memoryview的问题盲猜是表示一个内存数据结构, 这个结构里的数据类型, 字节排序等不一致导致的。文章来源地址https://www.toymoban.com/news/detail-849505.html

到了这里,关于QImage加载opencv读取的图片出错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI人工智能一键图片/视频换脸-Roop

    Roop 换脸技术是一种基于深度学习的人脸图像处理技术。 Roop换脸技术的实现主要分为两个步骤: 人脸检测与对齐 、 特征融合与生成 。 1.人脸检测与对齐在Roop换脸技术中,首先需要对输入的图像进行人脸检测与对齐。这一步骤的目的是确保输入的两张图像中的人脸位置和角

    2024年02月13日
    浏览(53)
  • 人工智能(pytorch)搭建模型17-pytorch搭建ReitnNet模型,加载数据进行模型训练与预测

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型17-pytorch搭建ReitnNet模型,加载数据进行模型训练与预测,RetinaNet 是一种用于目标检测任务的深度学习模型,旨在解决目标检测中存在的困难样本和不平衡类别问题。它是基于单阶段检测器的一种改进方法,通

    2024年02月15日
    浏览(87)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(98)
  • OpenCV读取图片

    第一种方式:直接通过Anaconda读取、显示 ①读取有色图片 ②读取灰度图片 ③对有色图片的一些其他操作截图 第二种方式:通过argparse模块读取、显示 ①首先介绍一下argparse模块的使用方法 在Pycham中运行 运行以上代码 (会报错 但不用管)如下图 点击Terminal, 然后ls查看文件–

    2024年02月05日
    浏览(35)
  • 人工智能(pytorch)搭建模型18-含有注意力机制的CoAtNet模型的搭建,加载数据进行模型训练

    大家好,我是微学AI,今天我给大家介绍一下人工智能(pytorch)搭建模型18-pytorch搭建有注意力机制的CoAtNet模型模型,加载数据进行模型训练。本文我们将详细介绍CoAtNet模型的原理,并通过一个基于PyTorch框架的实例,展示如何加载数据,训练CoAtNet模型,从操作上理解该模型。

    2024年02月16日
    浏览(62)
  • 基于Springboot+百度AI人工智能图像图片智能处理系统设计与实现

    基于Springboot+百度AI人工智能图像图片智能处理系统设计与实现  博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,

    2024年02月05日
    浏览(59)
  • QT QImage读取与写入保存图像-图像镜像显示

    QT QImage读取与写入保存图像-图像镜像显示   cpp文件

    2024年02月11日
    浏览(50)
  • 【OpenCV】P2 程序加载显示图片

    在 Opencv 中,如果想要加载展示一张图片,有以下几个步骤: 读取图像 :根据指定路径读取图像,将图像转化为数字矩阵形式; 创建窗口 :创建图像显示窗口,命名窗口名称; 显示图像 :通过窗口以数字矩阵形式展示图像; 释放内存 :展示完成,释放内存。 OpenCV 提供函

    2024年01月25日
    浏览(32)
  • OpenCV基础操作_图片读取和保存

    目录 1 图片读取 2 图片保存 在OpenCV中,加载图片采用imread()函数。 函数详细说明在:Reading and Writing Images and Video — OpenCV 2.4.13.7 documentation Python:   cv2. imread (filename[, flags])  函数功能: imread 功能是加载图像文件成为一个 Mat 对象。 imread支持的文件类型有: Windows bitmaps

    2023年04月19日
    浏览(86)
  • C++ 结合 opencv读取图片与视频

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包