C语言OpenCV创建图片,c – Opencv使用cv :: Mat创建新图像

首先,您需要以下信息来创建图像:

>宽度:301像素

>高度:260像素

>每个像素值(强度)为0~255:8位无符号整数

>支持所有RGB颜色:3个通道

>初始颜色:黑色=(B,G,R)=(0,0,0)

您可以使用cv :: Mat创建Image:

Mat grHistogram(260, 301, CV_8UC3, Scalar(0, 0, 0));

8U表示8位有符号整数,C3表示RGB颜色的3个通道,标量(0,0,0)是每个像素的初始值.同样的,

line(grHistrogram,pt1,pt2,Scalar(255,255,255),1,8,0);

是在grHistogram上从点pt1到点pt2绘制一条线.线的颜色为白色(255,255,255),1像素厚度,8连线和0移位.

有时您不需要RGB彩色图像,而是需要简单的灰度图像.也就是说,使用一个通道而不是三个通道.类型可以更改为CV_8UC1,您只需要指定一个通道的强度,例如Scalar(0).

回到你的问题,

Why this happening since, both create a Mat image structure?

因为您需要指定Mat的类型.它是彩色图像CV_8UC3还是灰度图像CV_8UC1?它们是不同的.如果在CV_8UC3图像上使用标量(255),则您的程序可能无法正常工作.

What is the purpose of const cv:Scalar &_s ?

cv :: Scalar用于指定每个像素的强度值.例如,如果类型为CV_8UC3,则标量(255,0,0)为蓝色,标量(0,0,0)为黑色.或者标量(0)是黑色的,如果它是CV_8UC1灰度图像.避免将它们混合在一起

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值