首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cv::Mat检测PixelFormat

cv::Mat检测PixelFormat
EN

Stack Overflow用户
提问于 2012-06-01 20:42:09
回答 2查看 7.3K关注 0票数 5

我正在尝试使用pictureBox->Image (Windows Forms)来显示cv::Mat图像(openCV)。我不想将图片保存为文件(因为我想每隔100ms重置一次图片)。我在这里找到了这个主题:How to display a cv::Mat in a Windows Form application?

当我使用此解决方案时,图像仅显示为白色。我想我拿错了PixelFormat。那么如何计算出我需要的PixelFormat呢?我还没有在cv::Mat中看到任何方法来获取有关这方面的信息。或者这取决于我用来创建此cv::Mat的图像源?到目前为止,谢谢:)

这里我拿了一个屏幕。它不是完全白色的。所以我猜里面有一些颜色信息。但也许我错了。Screen

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-02 01:17:27

cv::Mat.depth()返回像素类型,例如。CV_8U表示8位无符号等,cv::Mat.channels()返回通道数,对于彩色图像,通常为3

对于“常规图像”,opencv通常使用8位BGR颜色顺序,它应该直接映射到Windows位图或大多数Windows库中。

所以你可能想要system.drawing.imaging.pixelformat.Format24bppRgb,我不知道它使用什么顺序( RGB或BGR),但是你可以使用带有CV_BGR2RGB的opencv cv::cvtColor()来转换成RGB

票数 3
EN

Stack Overflow用户

发布于 2012-06-03 23:20:39

谢谢你的帮助!问题出在别的地方。我只是没有为Image对象分配内存。所以没有什么可以真正展示的。在headerFile中使用cv::Mat img;,在构造函数(ocvcamimg类)中使用img = new cv::Mat(120,160,0);使其正常工作。(ocvcamimg->captureCamMatImg()返回img)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10850492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档