最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity調(diào)用C++?dll實現(xiàn)打開雙目相機

 更新時間:2022年05月09日 11:44:46   作者:天人合一peng  
這篇文章主要為大家詳細(xì)介紹了如何在Unity中調(diào)用C++?dll實現(xiàn)打開雙目相機的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1.vs中生成dll

對應(yīng)的生成dll的cpp如下 

#include<opencv2/opencv.hpp>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
 
#define EXPORT_API __declspec(dllexport)
 
VideoCapture my_camera;
int width = 640;
int height = 480;
 
extern "C" bool EXPORT_API openCamera()
{
	bool my_open = false;
	while (!my_camera.isOpened())
	{
		std::cout << "Cannot open the camera!" << std::endl;
		my_camera.open(0);//一個接口能同時打開兩個攝像頭
	}
	my_camera.set(CV_CAP_PROP_FRAME_WIDTH, width*2);
	my_camera.set(CV_CAP_PROP_FRAME_HEIGHT, height);
	if (my_camera.isOpened())
	{
		my_open = true;
	}
	return my_open;
}
 
extern "C" void   EXPORT_API recieveFrame(uchar* texturePtr)
{
 
	Mat my_frameBGR;
	Mat my_frameRBG;
	my_camera >> my_frameBGR;
	if (my_frameBGR.data)
	{
		cvtColor(my_frameBGR, my_frameRBG, CV_BGR2RGB);
		memcpy(texturePtr, my_frameRBG.data, my_frameRBG.cols*my_frameRBG.rows*my_frameRBG.channels()*sizeof(uchar));
	}
 
}
 
extern "C" void EXPORT_API closeCamera()
{
	if (my_camera.isOpened())
	{
		my_camera.release();
	}
}

2.unity中justatry腳本

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.Runtime.InteropServices;用 c++中 dll 文件需要引入
 
public class justatry : MonoBehaviour {
 
	[DllImport("_dectecting")]
	public static extern bool openCamera();
 
	[DllImport("_dectecting")]
	public static extern bool recieveFrame(byte[] imageData);
 
	[DllImport("_dectecting")]
	public static extern bool closeCamera();
	public bool IsOpen = false;
	public byte[] imageData;
	public Texture2D tex;
	public int Width = 640;
	public int Length = 480;
	// Use this for initialization
	void Start () {
		IsOpen = openCamera();
		if(IsOpen)
		{
			imageData = new byte[Length * Width * 3*2];
			tex = new Texture2D(Width*2, Length, TextureFormat.RGB24, false);
		}
	}
	
	// Update is called once per frame
	void Update () {
			if (IsOpen)
			{
			recieveFrame(imageData);
				tex.LoadRawTextureData(imageData);
				tex.Apply();
				GetComponent<Renderer>().material.mainTexture = tex;
 
 
			}
	}
	void CloseCamera()
	{
		if (IsOpen)
		{
		 closeCamera();
 
		}
	}
	public void OnApplicatoinQuit()
	{
		closeCamera();
	}
}
using System.Runtime.InteropServices;用 c++中 dll 文件需要引入

public class justatry : MonoBehaviour {

	[DllImport("_dectecting")]
	public static extern bool openCamera();

	[DllImport("_dectecting")]
	public static extern bool recieveFrame(byte[] imageData);

	[DllImport("_dectecting")]
	public static extern bool closeCamera();
	public bool IsOpen = false;
	public byte[] imageData;
	public Texture2D tex;
	public int Width = 640;
	public int Length = 480;
	// Use this for initialization
	void Start () {
		IsOpen = openCamera();
		if(IsOpen)
		{
			imageData = new byte[Length * Width * 3*2];
			tex = new Texture2D(Width*2, Length, TextureFormat.RGB24, false);
		}
	}
	
	// Update is called once per frame
	void Update () {
			if (IsOpen)
			{
			recieveFrame(imageData);
				tex.LoadRawTextureData(imageData);
				tex.Apply();
				GetComponent<Renderer>().material.mainTexture = tex;


			}
	}
	void CloseCamera()
	{
		if (IsOpen)
		{
		 closeCamera();

		}
	}
	public void OnApplicatoinQuit()
	{
		closeCamera();
	}
}

注意,腳本要掛在plane上

3.在unity中調(diào)試

dll的輸出目錄是 unity項目工程名\Assets\Plugins

D:\Michael Wang\SC\2018\1\openDoublecamera\UnityTry\Assets\Plugins

4.在vs中調(diào)試

4.1 把unity的工程生成對應(yīng)的exe

這是生成的unity exe對應(yīng)的生成目錄

對應(yīng)的目錄如

D:\Michael Wang\SC\2018\1\openDoublecamera\UnityTry\test.exe

4.2 在vs項目的屬性中做如下設(shè)置

命令后用上面的路徑,注意是放在命令里不是命令參數(shù)里

在對應(yīng)的unity exe目錄中找到 unity工程名_Data下Plugins的目錄是

D:\Michael Wang\SC\2018\1\openDoublecamera\UnityTry\test_Data\Plugins

4.3 在VS工程的屬性中的輸出目錄設(shè)置為上面的目錄

做完以上設(shè)置就直接可以在VS下調(diào)試了。

5.注意vs和unity的平臺x86/x64要對應(yīng)

5.1 vs x86/x64

5.2 unity 

如果按以上設(shè)置還是不對,提示找不到dll,則把dll的輸出放在與Plugins或Assets文件夾同一級嘗試。

如果你已經(jīng)把dll放在這里了,還是顯示找不到,則一定是你用vs生成dll的庫沒有在環(huán)境變量里,然后unity里面調(diào)用時找不到vs生成dll所依賴的一些庫??梢园岩恍┠阒赖膸熘苯臃旁趘s生成的dll一起,全放在unity工程里,應(yīng)該就好了。

以上就是Unity調(diào)用C++ dll實現(xiàn)打開雙目相機的詳細(xì)內(nèi)容,更多關(guān)于Unity雙目相機的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#調(diào)用js庫的方法小結(jié)

    C#調(diào)用js庫的方法小結(jié)

    本文主要介紹了C#調(diào)用js庫的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 解析C#彩色圖像灰度化算法的實現(xiàn)代碼詳解

    解析C#彩色圖像灰度化算法的實現(xiàn)代碼詳解

    本篇文章是對C#中彩色圖像灰度化算法的實現(xiàn)進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C# GDI+實現(xiàn)時鐘表盤

    C# GDI+實現(xiàn)時鐘表盤

    這篇文章主要為大家詳細(xì)介紹了C# GDI+實現(xiàn)時鐘表盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C#將部分Controls數(shù)據(jù)導(dǎo)入對象并存入ini中的操作方法

    C#將部分Controls數(shù)據(jù)導(dǎo)入對象并存入ini中的操作方法

    在Winform設(shè)計中,經(jīng)常需要將控件數(shù)據(jù)導(dǎo)出到屬性或字段中,本文詳細(xì)介紹了如何優(yōu)化這一過程,包括控件和屬性的遍歷,以及使用FieldInfo的getSet函數(shù)和Ini類庫來實現(xiàn)數(shù)據(jù)的有效存儲和轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • C#微信公眾號開發(fā)之自定義菜單

    C#微信公眾號開發(fā)之自定義菜單

    這篇文章介紹了C#微信公眾號開發(fā)之自定義菜單,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#通過屬性名稱獲取(讀取)屬性值的方法

    C#通過屬性名稱獲取(讀取)屬性值的方法

    本文主要介紹了C#通過屬性名稱獲取(讀取)屬性值的方法,并提供了簡化版代碼,具有很好的參考價值,需要的朋友可以看下
    2016-12-12
  • C#設(shè)置開機啟動項、取消開機啟動項

    C#設(shè)置開機啟動項、取消開機啟動項

    這篇文章主要介紹了C#設(shè)置開機啟動項、取消開機啟動項,本文通過修改注冊實現(xiàn),并給出操作代碼,需要的朋友可以參考下
    2015-06-06
  • C#基礎(chǔ)語法:可空類型詳解

    C#基礎(chǔ)語法:可空類型詳解

    這篇文章主要介紹了C#基礎(chǔ)語法:可空類型詳解,本文分析了可空類型的源碼、研究了可空類型強制轉(zhuǎn)換為常規(guī)類型、可空類型的運算等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • C# 線程安全詳解

    C# 線程安全詳解

    這篇文章主要介紹了c# 線程安全的用法原理及使用示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下,希望能夠給你帶來幫助
    2021-09-09
  • C#9.0中init訪問器的實現(xiàn)

    C#9.0中init訪問器的實現(xiàn)

    本文主要介紹了C#9.0中init訪問器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05

最新評論

新竹市| 乌鲁木齐县| 盐山县| 九龙城区| 特克斯县| 磐安县| 林西县| 鹤壁市| 呼伦贝尔市| 毕节市| 文成县| 大荔县| 舒兰市| 建阳市| 贵定县| 陵川县| 海林市| 门源| 玉屏| 塔河县| 钟祥市| 自贡市| 五河县| 博爱县| 大新县| 阜新市| 密云县| 开鲁县| 邛崃市| 西青区| 湖南省| 巩义市| 鱼台县| 许昌县| 丁青县| 谷城县| 玉环县| 泸州市| 甘德县| 南靖县| 灌阳县|