Unity3D比较图像

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 () {

我试图用第二张图片的黑色像素来观察一张图片的黑色像素。如何将apple.GetPixeli,ii.grayscale转换为颜色

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是白色,我明白了,这似乎是合乎逻辑的: