Unity3D比较图像
我试图用第二张图片的黑色像素来观察一张图片的黑色像素。如何将apple.GetPixeli,ii.grayscale转换为颜色Unity3D比较图像,unity3d,Unity3d,我试图用第二张图片的黑色像素来观察一张图片的黑色像素。如何将apple.GetPixeli,ii.grayscale转换为颜色 using UnityEngine; using System.Collections; public class ComparePictures : MonoBehaviour { public Texture2D apple; // Use this for initialization void Start () {
using UnityEngine;
using System.Collections;
public class ComparePictures : MonoBehaviour {
public Texture2D apple;
// Use this for initialization
void Start () {
int blackPixels = 0;
int texWidht = (int) apple.width;
int texHeight = (int) apple.height;
for(int i = 0; i < texWidht; i++)
{
for(int ii = 0; ii < texHeight; ii++)
{
if(apple.GetPixel(i,ii) == Color.black)
{
blackPixels ++;
}
}
}
print(blackPixels);
}
}
要检查值是否为黑色,只需检查适当的值。这是一张方便的图片:
var color : Color = Color (.3, .4, .6);
print(color.grayscale);
这一切都取决于你决定多暗才算足够暗。一些代码可能是:
// Check if a color is over 80% dark
if(color.grayscale > 8.0)
// Dark enough for me
apple.GetPixel返回颜色?是的,我不确定您在问什么?是否要将GetPixel.grayscale转换回颜色?你为什么不打个电话呢。灰度?我想计算一下图像中黑色像素的数量。我删除了.grayscale您当前的代码应该可以工作吗?它是否打印0?您可能需要初始化int blackPixels;请记住,这只适用于纯黑色值,而不仅仅适用于黑色值。ifapple.GetPixeli,ii.grayscale==1.0f{blackPixels++;}应返回与ifapple.GetPixeli,ii==Color.black{blackPixels++;}相同的结果,对吗?但它不是:P….第一个if语句返回24.000,第二个100.000,差别很大哈哈哈哈哈,我看到0.0是黑色,1是白色,我明白了,这似乎是合乎逻辑的: