OpenCV 图片 Buf 转 Mil

 仅限灰度图片

	cv::Mat cvImg = cv::imread("1.bmp", 0);
	cv::Mat cvImgOut;

	cv::Mat cameraMatrix;
	cv::Mat distCoeffs;
	cv::FileStorage fs("cal.file", cv::FileStorage::READ);
	fs["cameraMatrix"] >> cameraMatrix;
	fs["distCoeffs"] >> distCoeffs;
	fs.release();

	int n = cvImg.channels();

	cv::undistort(cvImg, cvImgOut, cameraMatrix, distCoeffs);
	cv::imwrite("test0.bmp", cvImgOut);
	n = cvImgOut.channels();

	if (cvImgOut.channels() > 1)
	{
		cv::cvtColor(cvImgOut, cvImgOut, CV_RGB2GRAY);
	}

	MIL_ID MilImage;
	MbufAlloc2d(MilSystem, 2592, 1944, 8 + M_UNSIGNED, M_IMAGE + M_PROC + M_DISP, & MilImage);	
	MbufPut(MilImage,cvImgOut.data);
	MbufSave(MIL_TEXT("testMil.bmp"), MilImage);	
	MbufFree(MilImage);

	MbufRestore(MIL_TEXT("testMil.bmp"), MilSystem, & MilImage);
	byte * buf = new byte[2592 * 1944 + 10]();
	MbufGet(MilImage, buf);
	cv::Mat cvImg2(1944, 2592, CV_8UC1, buf);
	cv::imwrite("testCV.bmp", cvImg2);
	delete [] buf;
	buf = NULL;
	MbufFree(MilImage);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值