Q:

Contar quantos pixels de uma cor tem a imagem

Estou trabalhando em uma solução para estúdios de tatuagem.Gostaria de saber como seria possível determinar quantos pixels de uma determinada cor existe na imagem inserida na pictureBox1.
Nesta imagem, por exemplo, seria possível contabilizar apenas o diamante,ou seja, sem contar com o espaço em branco? ou então contar apenas o espaço em branco(pois assim seria possível fazer uma subtração no valor da área total)?
Além disso mostrar o resultado da contagem em uma textbox.
private void button3_Click(object sender, EventArgs e)
    {

        Form2 form = new Form2();

        form.Show();
        OpenFileDialog file = new OpenFileDialog();
        file.Filter = "jpg|*.jpg|png|*.png";
        if (file.ShowDialog() == DialogResult.OK)
        {
            form.pictureBox1.ImageLocation = file.FileName;
            var count = 0;
            var searchColor = Color.FromName("SlateBlue");
            for (var x = 0; x < form.pictureBox1.Image.Width; x++)
            {
                for (var y = 0; y < form.pictureBox1.Image.Height; y++)
                {
                    Color pixelColor = form.pictureBox1.Image.GetPixel(x, y);
                    if (pixelColor == searchColor)
                    {
                        count++;
                    }
                }
            }

Não deu certo. Ele não aceita ".GetPixel"

A:

Como a pergunta não tem detalhes, responderei sem detalhes. Seria alguma mais ou menos assim.
var count = 0;
var searchColor = Color.FromName("SlateBlue");
for (var x = 0; x < pictureBox1.Image.Width; x++) {
    for (var y = 0; y < pictureBox1.Image.Height; y++) {
        Color pixelColor = pictureBox1.Image.GetPixel(x, y);
        if (pixelColor == searchColor) count++;
    }
}

Coloquei no GitHub para referência futura.

A:

EDIÇÃO: Surgiu outra pergunta com um problema similar, mas utilizando
  Java. Então eu essencialmente traduzi o código que criei aqui (e até
  usei o mesmo exemplo). Se por um acaso algum leitor eventualmente
  precisar de uma solução também na linguagem Java, por favor
  referenciar esta resposta.

Bom, já que a sua imagem não é capturada do mundo real (um detalhe importantíssimo que você não havia colocado na pergunta original), é muito mais simples usar um método como a limiarização para fazer o trabalho automaticamente. A limiarização (thresholding em inglês) é um processo em que você transforma uma imagem qualquer em uma imagem binária (contendo apenas duas cores) substituindo todos os pixels na imagem original por uma das cores binárias dependendo de seu brilho ser maior ou menor do que um limiar definido.
Como no seu caso a região da tatuagem é muito distinta do fundo, um valor de limiar médio (0,5) é suficiente para um resultado interessante. Mas note que você pode precisar ajustá-lo para um efeito melhor em outras imagens. A comparação é efetuada com o brilho na imagem, e quanto menor o brilho mais próxima a cor é do preto (por isso o código só contabiliza os pixels em que o brilho for menor do que o limiar).
Eis um programa de exemplo:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Teste
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Filter = "jpg|*.jpg|png|*.png";
            if (file.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.ImageLocation = file.FileName;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var limiar = 0.5;

            var count = 0;
            Bitmap img = new Bitmap(pictureBox1.Image);

            for (var x = 0; x < img.Width; x++)
            {
                for (var y = 0; y < img.Height; y++)
                {
                    Color pixelColor = img.GetPixel(x, y);
                    if (pixelColor.GetBrightness() < limiar)
                    {
                        count++;
                        img.SetPixel(x, y, Color.Red);
                    }
                }
            }
            pictureBox1.Image = img;

            var percent = ((float) count / (img.Width * img.Height)) * 100;
            label1.Text = String.Format("A tattoo contém {0:d} pixels (ou seja, uma área equivalente a {1:f}%)", count, percent);
        }
    }
}

A tela inicial tem a Picture Box, dois botões (um para carregar a imagem e exibí-la e outro para processá-la) e um label para apresentar o resultado:

Após processar, o código não só contabiliza os pixels (e também a porcentagem, um valor mais efetivamente útil porque é normalizado de forma independente às dimensões da imagem) como também troca os pixels da tatuagem para vermelho pra efetivamente demonstrar o que foi calculado. Resultado:

Observação: note que o processamento usa a classe Bitmap e não o Picture Box para acessar os pixels brutos.

