�����ε���ǻøɽ��(�ץ��������)

�����ε���ǻøɽ����Ԥ��ץ������δ�ñ�����ʲ��˼����� �����Ǥϥǥ����ޥȥ�å����Ȥ��ưʲ��Τ褦��2x2�Τ�Τ� �Ѥ��Ƥ��롣
0 2
3 1
�ºݤˤϥץ������Ǽ����褦�ˡ�5�ʳ���ʬ����0��4��Ʊ�� ��Ψ�ǽи�����褦�ˤ��Ƥ��롣�ºݤΥǥ����ޥȥ�å������ͤ�
51 153
204 102
�Ǥ��롣
/* dither.c */ 
/* a simplified example of dither into 2 bit image */ 
/* usage dither < file.pgm > file2.pgm */

#include <stdio.h>

static int matrix[2][2] = {51,153,204,102};
	/* 255*(1/5), 255*(3/5), 255*(4/5), 255*(2/5) */


main() 
{
	int width,height; 
	char buffer[80]; 
	int dx,dy; 
	int x, y; 
	int pix;

	gets(buffer); puts(buffer); 
	gets(buffer); puts(buffer);
	sscanf(buffer,"%d %d",&width,&height); 
	gets(buffer); puts(buffer);

	dx = dy = 0; 
	for (y = 0; y < height; y++) {
		for (x = 0; x < width; x++) {
			pix = getchar(); 
			if ( pix > matrix[dy][dx] ) pix = 255; 
			else pix = 0; 
			putchar(pix); 
			dx ^= 1;
		} 
	dy ^=1; 
	} 
}

��̤ϰʲ��ΤȤ��ꡣ�������äȤޤ��ʥǥ�������٤ƤߤƤ���������

(��Υץ������˿��碌������ gif����pgm���Ѵ������Ǥ���pgm��gif�� �Ѵ����ʤ��� Netscape�ˤ�ɽ���Ǥ��ޤ���Τ�ǰ�Τ��ᡣ)


  1. �����Ǥϥǥ����ޥȥ�å����� 2 x 2 �Ǥ��ä���������� N x N �Υޥȥ�å��� DN�˳�ĥ����ˤϡ�
    4DN/2 4DN/2+2UN/2
    DN =��
    4DN/2+3UN/2 4DN/2+UN/2
    (â����UN �ϳ����Ǥ�1��N x N �Υޥȥ�å���)�Ȥ���Ф褤�� 4 x 4 �Υǥ����ޥȥ�å�������衣
  2. 4x4�Υޥȥ�å�����Ȥä��ǥ����ץ�������������衣
  3. 2x2�Υޥȥ�å����� PPM �����Υ��顼������Ŭ�Ѥ���ץ������� ���ʤ�����