本文整理汇总了C#中UnityEngine.WebCamTexture.GetPixels32方法的典型用法代码示例。如果您正苦于以下问题:C# WebCamTexture.GetPixels32方法的具体用法?C# WebCamTexture.GetPixels32怎么用?C# WebCamTexture.GetPixels32使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UnityEngine.WebCamTexture
的用法示例。
在下文中一共展示了WebCamTexture.GetPixels32方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FromWebCamTexture
/// <summary>
/// Create a native CGImage object from a WebCamTexture.
/// </summary>
/// <returns>The newly created native CGImage object or null if error.</returns>
/// <param name="texture">Texture.</param>
/// <param name="scale">Scale.</param>
public static CGImage FromWebCamTexture(WebCamTexture texture, float scale = 1.0f)
{
if (texture == null)
return null;
var data = texture.GetPixels32();
return CGImage.FromPixels32(data, texture.width, texture.height, scale);
}
示例2: updateByWebCamTexture
/**
* WebTextureで更新します。
*/
public void updateByWebCamTexture(WebCamTexture i_wtx)
{
i_wtx.GetPixels32((Color32[])this._buf);
//this._rgb_pixel_driver.switchRaster(this);//バッファを上書きするからいらない。
return;
}
示例3: Update
void Update()
{
if (timer < 2.0f) {
timer += Time.deltaTime;
return;
}
wct = wcb.wct;
c = wct.GetPixels32 ();
width = wcb.width;
height = wcb.height;
GetComponent<Renderer>().material.mainTexture = wct;
// ------------------------------------------------------------------------
// 真値.
// 状態更新.
x = dotVec(dotVec(dotVec(A ,x), dotVec(B ,u)), dotVec(s_sigma, randn(2, 1)));
// 観測.
z = dotVec(dotVec(o_sigma, randn(2, 1)), x);
// ------------------------------------------------------------------------
// particle filter
// サンプリング
Kai = dotVec(dotVec(dotVec(A ,Kai) ,repmat21M(dotVec(B, u))) ,dotVec(s_sigma ,randn(2, M)));
// 尤度を計算
for(int i = 0; i < M; i++)
w[i] = 1.0f/(Mathf.Sqrt(2.0f* Mathf.PI) * sigma)
* Mathf.Exp(
-(
(Kai[1, i] - z[1, 1])*(Kai[1, i] - z[1, 1])
/(2.0f * sigma * sigma)
)
)
/(Mathf.Sqrt(2.0f*Mathf.PI)*sigma)
* Mathf.Exp(
-(Kai[2,i]-z[2,1])*(Kai[2,i]-z[2,1])/(2.0f*sigma*sigma)
);
// 重みを正規化
float w_sum = 0;
for(int i = 0; i < M; i++)
w_sum += w[i];
for(int i = 0; i < M; i++)
w[i] /= w_sum;
// Kai_barに入れておく
for(int i = 0; i < M; i++)
for(int j = 0; j < 2; j++)
Kai_bar[j, i] = Kai[j, i];
for(int i = 0; i < M; i++)
Kai_bar[2, i] = w[i];
// リサンプリング
// 重みを入れる箱(無駄が多い)
float[,] box = new float[M + 1, 1];
for (int i = 0; i < M - 1; i++)
box[i + 1, 0] = box[i, 0] + w[i];
box[M, 0] = 1.0f;
// くじ引き
for (int i = 0; i < M; i++){
float r = Random.Range(0.0f, 1.0f);
int num = 0;
// 乱数がどの箱かを調べる(遅い)
for (int j = 0; j < M; j++){
if((box[j, 0] < r) && (r < box[j + 1, 0])){
num = j;
}
}
// 新たなKaiに代入
Kai[0, i] = Kai_bar[0, num];
Kai[1, i] = Kai_bar[1, num];
}
// ------------------------------------------------------------------------
// 描画
// パーティクル
for (int i = 0; i < M; i++) {
objParticles [i].transform.position = new Vector3(Kai[0,i], Kai[1, i], 0);
// objParticles [i].renderer.material.color = c [Kai[1,i] * width + Kai[0, i]];
}
}