MFC中CString和OpenCV imread 搭配使用时的类型转换

OpenCV 使用的是Ansi字符集std::string 8bit string
Windows中的CString是Unicode字符集,wide string

在这里插入图片描述

MFC项目中,可以选择使用不同的字符集
如果使用多字符集字符集,则可以如下调用

CString fileName;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT);
if(dlg.DoModal() == IDOK)
{
	fileName= dlg.GetPathName();
	const char* fpath = CStringA(fileName); 
	m_BGRimg=imread(fpath);
}

在这里插入图片描述

如果使用Unicode字符集
需要
#include <atlconv.h>
然后
CString fileName;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT);
if(dlg.DoModal() == IDOK)
{
fileName= dlg.GetPathName();
USES_CONVERSION;
string fileNameBK(W2A(fileName));
m_srcBGRImg=imread(fileNameBK);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值