matlab转c++学习1.0

因为工作需要,现在开始着手VS+opencv的学习,首先就是读片读取,发现按照以前MATLAB的写法会出现以下报错:

OpenCV(4.5.0) Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, 

搜到的解决方法一个是将图片放到代码路径下,但这个方法很麻烦;

第二个方法就是讲图片的绝对路径写出来,值得注意的是

MATLAB的路径读取是这样写的

‪Image=imread("D:\matlab\11.jpg");

但在vs环境下就会报错,改成这样就会运行正常了,也就是多写个\就可以。

	Mat src = imread("D:\\matlab\\11.jpg");

cvtColor
        色彩空间转换
            共4个参数
                第1个参数 输入
                第2个参数 输出
                第3个参数 色彩空间转换方式
                第4个参数 通道数(不输入,则根据输入自动计算)
imwrite
        图像保存
            共3个参数
                第1个参数 路径+文件名
                第2个参数 输入
                第3个参数 特定格式编码对(一般用不到)

//1.赋值——浅复制
Mat src = imread("……");
Mat m3 = src;

//2.克隆——深复制
Mat src = imread("……");
Mat m1 = src.clone();

//3.拷贝——深复制
Mat src = imread("……");
Mat m2;
src.copyTo(m2);

Mat image= imread("……");

//Mat对象存储的列数,行数,通道数(维度),位深度,图像类型很简单,通过这些操作即可
image.cols;
image.rows;
image.channels();
image.depth();
image.type();

VS在处理16位的图像时,直接进行读取会将图像解码成8位的图像,此时添加一个IMREAD_UNCHANGED即可解决该问题。

IMREAD_UNCHANGED是OpenCV中imread函数的一个读取标志。它用于读取图像时不进行任何修改或解码。具体来说,它将图像以原始格式加载到内存中,包括图像的通道数和深度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_46165876

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值