社区
OpenCV
帖子详情
求助:如何把C#的bitmap和C++ opencv的Mat相互转化
Z_Ascll
2019-02-02 09:05:11
本人要做一个用C++写Opencv处理图像的的dll文件,然后用C#写应用程序,调用dll,但是图片格式不会转换,上网找了好多都没用,求大神知道,出结果就结帖。谢谢
...全文
1387
3
打赏
收藏
求助:如何把C#的bitmap和C++ opencv的Mat相互转化
本人要做一个用C++写Opencv处理图像的的dll文件,然后用C#写应用程序,调用dll,但是图片格式不会转换,上网找了好多都没用,求大神知道,出结果就结帖。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
枯岭决
2019-05-13
打赏
举报
回复
https://blog.csdn.net/chenyusiyuan/article/details/7975942
枯岭决
2019-05-13
打赏
举报
回复
mat是个结构体,不是单纯的图片格式。 去查一下mat的定义。 C++下可以把mat 转换成bmp,详细代码见博客: https://blog.csdn.net/suifeng50/article/details/50177775 向C#传入bmp
jsxyhelu2015
2019-02-14
打赏
举报
回复
为基于OpenCV的图像处理程序编写界面—关于QT\MFC\CSharp的选择以及GOCW的介绍
OpenCV
+ zbar开源库实现摄像头识别二维码
OpenCV
+zbar开源库实现摄像头识别二维码,测试验证识别率非常高,已实现简单的应用。 打包源码在VS2013下可以完全编译成功,附加包含
OpenCV
库及zbar-0.10-setup.exe,zbar-0.10.tar.bz2 下载Demo后需要安装 zbar-0.10-setup.exe 以下代码可以可以完成整个流程的开发,也可以贡献积分下载资源包。 1、 环境准备 (1)
OpenCV
库2.49 (2) ZBar开源库 (3) VS2013 2、 VS2013环境配置 (1) 配置附加包含目录 C/
C++
-- 附加包含目录 include\
opencv
\include\ include\
opencv
\include\
opencv
include\
opencv
\include\
opencv
2 include (2) 配置链接器 链接器 -- 附加库目录 lib32\
opencv
\lib lib32 (3) 配置链接器 链接器--输入--附加依赖项
opencv
_core249d.lib
opencv
_highgui249d.lib
opencv
_imgproc249d.lib libzbar-0.lib 3、 代码开发 (1)包含头文件 include include include include include include using namespace std; using namespace zbar; using namespace cv; (2)实现函数 void
Mat
ToCImage(cv::
Mat
&
mat
, CImage &cImage) { //create new CImage int width =
mat
.cols; int height =
mat
.rows; int channels =
mat
.channels(); cImage.Destroy(); //clear cImage.Create(width, height, 8 * channels); //默认图像像素单通道占用1个字节 //copy values uchar* ps; uchar* pimg = (uchar*)cImage.GetBits(); //A pointer to the
bitmap
buffer int step = cImage.GetPitch(); for (int i = 0; i (i)); for (int j = 0; j GetDlgItem(IDC_STATIC_IMG)->GetClientRect(▭); cv::VideoCapture capture(0);//从摄像头读入图像 while (!m_bCloseCamera) { cv::
Mat
frame; capture >> frame; cv::
Mat
newframe; cv::Size ResImgSiz = cv::Size(rect.Width(), rect.Height()); cv::resize(frame, newframe, ResImgSiz, CV_INTER_CUBIC);
Mat
ToCImage(newframe, imgDst); imgDst.Draw(pThis->GetDlgItem(IDC_STATIC_IMG)->GetDC()->GetSafeHdc(), rect); ImageScanner scanner; scanner.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
Mat
imageGray; cvtColor(frame, imageGray, CV_RGB2GRAY); int width = imageGray.cols; int height = imageGray.rows; uchar *raw = (uchar *)imageGray.data; Image imageZbar(width, height, "Y800", raw, width * height); scanner.scan(imageZbar); //扫描条码 Image::SymbolIterator symbol = imageZbar.symbol_begin(); if (imageZbar.symbol_begin() == imageZbar.symbol_end()) { } else { iIndex++; if (iIndex > 999999) { iIndex = 0; } for (; symbol != imageZbar.symbol_end(); ++symbol) { char szInfo[1024]; memset(szInfo, 0, sizeof(szInfo)); sprintf(szInfo, "[d]类型:%s\r\n条码:%s\r\n", iIndex , symbol->get_type_name().c_str(), symbol->get_data().c_str()); pThis->GetDlgItem(IDC_EDIT1)->SetWindowText(szInfo); } } imageZbar.set_data(NULL, 0); } imgDst.Destroy(); capture.release(); return 0; }
使用
C++
/CLR进行
C++
cv::
Mat
与
C#
Bitmap
之间的
相互
转换
//--------------Functions.h-------------------- #include <
opencv
\cv.h> #include<
opencv
.hpp> #include <string> cv::
Mat
Bitmap
To
Mat
(System::Drawing::
Bitmap
^
bitmap
); System::Draw...
Windows游戏编程系列之1:GUI窗口界面编程及游戏入门实战
我将带领大家来系统学习Windows的窗口编程,包括消息、窗口、GDI绘图、游戏开发等。本课程比较基础,非常适合初学者入门,读者可以边学习边实践。具体的章节目录和课程内容如下所示:---------------------------------------------Windows游戏编程系列之1:GUI界面编程及游戏入门实战1、Windows创建第一个窗口 WinMain入口函数 5进行Windows编程的调试手法 6窗口从哪里来? 7窗口编程的步骤 7窗口编程需要的主要结构 8窗口编程需要的主要API 92、Windows的窗口过程与消息机制 如何留住窗口? 121)Windows的消息与消息循环 142)消息处理函数与常用消息 17)Windows的窗口过程函数 19 3、GDI编程之设备上下文 1)GDI的通用编程框架 222)GDI的绘图步骤 253)GDI获取设备句柄 254、GDI编程之绘制几何图形 画点、线 28颜色COLORREF 29矩形 29画圆、饼图、弦图 305、GDI编程之自定义画笔画刷画笔简介 32画刷简介 33画笔案例 33画刷案例 346、GDI编程之绘制文字 DrawText函数 35TextOut 函数 (wingdi.h) 36CreateFont函数 37绘制文本案例 377、GDI编程之绘制位图 位图简介 381)在资源中添加位图资源 392)从资源中加载位图: Load
Bitmap
393)创建一个与当前DC相匹配的DC(内存DC) 394)将
bitmap
放入匹配的DC中:SelectObject 405)成像(1:1 比例 ) 406)取出位图 407)释放位图 418)释放匹配的DC 41绘制位图案例 41 8、Windows鼠标键盘消息 一、键盘消息 421、键盘消息 422、消息参数: 423、消息的使用: 424、键盘消息的案例代码 43二、鼠标消息 441、基本鼠标消息 442、双击消息 443、滚轮消息 454、不响应双击消息 45 9、Windows定时器消息 定时器消息介绍 47创建定时器 47关闭定时器 47定时器消息案例代码 4810、GDI游戏之跳舞动画 11、GDI游戏之走路动画 12、GDI贪吃蛇游戏实战
cv
mat
保存图片_将
opencv
图像cv ::
Mat
格式转换为C#
Bitmap
Image
我编写了这个示例代码来解释我的问题。我在VS 2013中有一个解决方案,包含一个C#项目和一个
C++
项目。我尝试用
C++
(x86)中的
OpenCV
读取图像。并希望将一个C#x86项目(使用CLR模式)传递给位图对象,然后将
Bitmap
Image对象用作WPF图像源。我的
C++
代码:将
opencv
图像cv ::
Mat
格式转换为C#
Bitmap
Image
Bitmap
^ SomeClass::Test...
cv::
mat
与
Bitmap
的
相互
转化
转自:https://blog.csdn.net/u012156872/article/details/103675369 Gdiplus::
Bitmap
*
Mat
ToCGdiImage(
Mat
&
mat
) { cv::cuda::Gpu
Mat
mat
g; if (
mat
.empty()) return NULL; //检查图像位深 if (
mat
.depth() !=...
OpenCV
4,242
社区成员
940
社区内容
发帖
与我相关
我的任务
OpenCV
OpenCV相关技术交流专区
复制链接
扫一扫
分享
社区描述
OpenCV相关技术交流专区
计算机视觉
人工智能
opencv
技术论坛(原bbs)
广东省·深圳市
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
OpenCV中国团队官方博客:
https://blog.csdn.net/opencvchina
试试用AI创作助手写篇文章吧
+ 用AI写文章