当前位置: 首页 > news >正文

做网站需要物流信息端口多个网站集成在一个页面

做网站需要物流信息端口,多个网站集成在一个页面,windows优化大师卸载,北京音乐制作公司目录 一、前言 二、场景介绍 1.WebCamTextureToMatExample脚本 2.FpsMonitor脚本 三、 结构体Scaler 四、找到相机并使用 1.相机的启用 2.格式转换 a.把webCamTexture转换成Mat b.把Mat转换成Texture2D 五、脚本组合 六、作者的碎碎念 一、前言 第二个案例&#xf…

目录

一、前言

二、场景介绍

1.WebCamTextureToMatExample脚本

2.FpsMonitor脚本

三、 结构体Scaler

四、找到相机并使用

1.相机的启用

2.格式转换

a.把webCamTexture转换成Mat

b.把Mat转换成Texture2D

五、脚本组合

六、作者的碎碎念


一、前言

第二个案例(如图1所示),讲的内容是使用相机和把相机的图片转换成Mat再去使用。

图1 案例2

二、场景介绍

这个案例,如果你点击运行了,就是把相机的内容显示在界面里,同时你可以控制相机的切换,是否启动。

整个场景中,重要的脚本有两个。(如图2所示)

图2 两个重要的脚本
1.WebCamTextureToMatExample脚本

 这个脚本主要是控制相机的启停,输出图片,把图片显示在界面上。

2.FpsMonitor脚本

这个脚本是帧率监视器,把图片的长宽,和输出图片的帧率显示在界面上。(如图3所示)

这些数字和方框都是在脚本里画的,所以在界面里看不见这个游戏物体。

图3 面板

本篇文章不讲脚本2,因为不是主要脚本,只讲脚本1.

三、 结构体Scaler

图片计算一般是四个数据。比如,Color是(255,255,255,255)。

但是我们每次设置就要new Color(255,255,255,255),再进行修改或者计算是比较麻烦的。

为了不那么麻烦,OpenCV中设置了一个结构体Scaler,专门用来存放四个数,可以复制,可以相乘等,写了一些帮助计算的代码。本质就是存放四个数的结构体

大家后面看见了不要太陌生。

四、找到相机并使用

我把WebCamTextureToMatExample脚本中最核心的部分拿了出来,单独写了一个脚本。

1.相机的启用
//相机驱动
WebCamDevice webCamDevice;
//相机拍摄的图片
WebCamTexture webCamTexture;//你希望输出的分辨率宽
public int requestedWidth = 1920;
//你希望输出的分辨率高
public int requestedHight = 1080;
//相机按什么帧率输出图片
public int requestFPS = 30;void Start()
{//初始化Initialize();
}//相机的初始化用携程比较好,就再创建个携程调用
private void Initialize()
{ StartCoroutine(_Initialize());
}//携程
IEnumerator _Initialize()
{//获取所有可以传输图片的相机WebCamDevice[] webCamDevices = WebCamTexture.devices;//如果这个数量是大于1的if (webCamDevices.Length >= 0){ //默认取第一个相机,这里你也可以选别的,不要紧webCamDevice = webCamDevices[0];//初始化一下图片,提供驱动名称,图片的宽高,输出图片的帧率webCamTexture = new WebCamTexture(webCamDevice.name,    requestedWidth,requestedHight,requestFPS);}//如果没初始化,说明没找到相机if (webCamTexture == null){Debug.Log("没有找到相机");//跳出方法yield break;}//如果找到了,就开始接收图片webCamTexture.Play();//相机照到以后OnInited();   }

这部分代码就可以把相机打开,并且把图片拿到WebCamTexture中了。

2.格式转换

还是老规矩,万物都要转换成OpenCV的通用格式Mat,所以分两步:

a.把webCamTexture转换成Mat

b.把mat转换成Texture2D。

a.把webCamTexture转换成Mat

需要的参数有三个:

public static void webCamTextureToMat(
WebCamTexture webCamTexture, 
Mat mat, 
Color32[] pixels32Buffer, 
bool flipAfter = true, 
int flipCode = 0)

webCamTexture有了

新建Mat:

Mat rgbaMat;rgbaMat = new Mat(
webCamTexture.height, 
webCamTexture.width, 
CvType.CV_8UC4, 
new Scalar(0, 0, 0, 255));    //初始化一个黑色

新建Color32[]:

它的大小必须装得下你想要的相机图片大小。

Color32[] colors;colors = new Color32[webCamTexture.width * webCamTexture.height];

webCamTexture转换成Mat:

上一集说过,转换的方法都放在Utils类里面,所以,转换方法为:

Utils.webCamTextureToMat(webCamTexture, rgbaMat, colors);
b.把Mat转换成Texture2D

上节课的内容,这里略过。

五、脚本组合

WebCamDevice webCamDevice;WebCamTexture webCamTexture;public int requestedWidth = 1920;public int requestedHight = 1080;public int requestFPS = 30;Mat rgbaMat;Color32[] colors;Texture2D texture;void Start(){Initialize();}private void Initialize(){ StartCoroutine(_Initialize());}IEnumerator _Initialize(){WebCamDevice[] webCamDevices = WebCamTexture.devices;if (webCamDevices.Length >= 0){ webCamDevice = webCamDevices[0];webCamTexture = new WebCamTexture(webCamDevice.name,requestedWidth,requestedHight,requestFPS);}if (webCamTexture == null){Debug.Log("没有找到相机");yield break;}webCamTexture.Play();OnInited();}private void OnInited(){//初始化Colorscolors = new Color32[webCamTexture.width * webCamTexture.height];//初始化texturetexture = new Texture2D(webCamTexture.width, webCamTexture.height, TextureFormat.RGBA32, false);//初始化mat并赋值黑色rgbaMat = new Mat(webCamTexture.height, webCamTexture.width, CvType.CV_8UC4, new Scalar(0, 0, 0, 255));//转换Utils.matToTexture2D(rgbaMat, texture, colors);//我是把脚本挂在RawImage上的,所以可以直接赋值gameObject.GetComponent<RawImage>().texture = texture;}void Update(){if (webCamTexture.isPlaying && webCamTexture.didUpdateThisFrame){Utils.webCamTextureToMat(webCamTexture, rgbaMat, colors);Utils.matToTexture2D(rgbaMat, texture, colors);//我是把脚本挂在RawImage上的,所以可以直接赋值gameObject.GetComponent<RawImage>().texture = webCamTexture;}}

六、作者的碎碎念

发现数据还挺好,所以....继续更了。

http://www.yayakq.cn/news/320977/

相关文章:

  • 重庆沙坪坝企业网站建设联系电话小女孩做网站
  • 传统网站建设 成本保险咨询免费
  • 做网站流量怎么卖全免费无代码开发平台
  • 支持ipv6网站开发网址转换成二维码
  • 网站设计制作在哪里找可以免费发广告的app
  • 蓟县集团网站建设php大气企业网站
  • 免费asp企业网站源码响应式网站怎么制作
  • 比特币支付网站建设溧阳企业网站建设价格
  • 怎么看网站备案号山东省建设资格中心网站
  • 微信网站开发报价400网站建设电话
  • 长宁微信手机网站制作吴家山网站建设公司
  • 凡科建站官网怎么样网站开发培训那个好
  • 石家庄网站建设今天改网名上海市建设部注册中心网站
  • 福州网站建设H5物联网应用技术就业方向及前景
  • 网站文件上传好下一步怎么做四川网站建设
  • 建立网站备案需要什么资料石家庄小程序开发公司
  • 大连鼎信网站建设购物网站设计说明
  • 有没有教做蛋糕的网站青岛专业制作网站的公司吗
  • 东莞响应式网站哪家好网站seo的重要性
  • 南充市建设局网站网页设计与制作智慧树单元检测答案
  • 俄文企业网站制作wordpress 多国语言
  • 医院的网站关键词定位一般是什么seo难不难
  • 网站建设需求文章天眼查询个人信息免费
  • 模板型网站建设怎么建设淘客自己的网站_
  • 淄博网站建设详细策划网站开发成本评估
  • 寻花问柳专注做一家男性喜欢的网站psd设计网站模板
  • 网站备案协议书文章类网站
  • 如何做自己网站深圳vi设计有哪些
  • 网站管理平台扩展插件网站建设服务器如何选择
  • 山西建站优化thinkphp仿wordpress