【이미지 처리 100개 노크에 도전】Q.6.감색 처리
사용한 라이브러리
【화상 처리 100개 노크】 독자적인 화상 입출력 클래스를 만든다
Q.6. 감색 처리
여기에서는 이미지의 값을 256^3에서 4^3, 즉 R,G,B in {32, 96, 160, 224}의 각 4값으로 감색하라. 이것은 양자화 조작이다.
이것은 간단합니다.
int _256to4(int val)
{
int ret;
if (0 <= val && val < 64) return 32;
else if (64 <= val && val < 128) return 96;
else if (128 <= val && val < 192) return 160;
else return 224;
}
int main()
{
PPM ppm("imori.pnm");
int width = ppm.Get_width();
int height = ppm.Get_height();
PPM ppm2(width, height);
for (int j = 0; j < height; j++)
for (int i = 0; i < width; i++)
{
int r = ppm(i, j, 'r');
int g = ppm(i, j, 'g');
int b = ppm(i, j, 'b');
int r2 = _256to4(r);
int g2 = _256to4(g);
int b2 = _256to4(b);
ppm2(i, j, 'r') = r2;
ppm2(i, j, 'g') = g2;
ppm2(i, j, 'b') = b2;
}
ppm2.Flush("out.ppm");
return 0;
}
Reference
이 문제에 관하여(【이미지 처리 100개 노크에 도전】Q.6.감색 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jajagacchi/items/bc354d92f621409a527a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에서는 이미지의 값을 256^3에서 4^3, 즉 R,G,B in {32, 96, 160, 224}의 각 4값으로 감색하라. 이것은 양자화 조작이다.
이것은 간단합니다.
int _256to4(int val)
{
int ret;
if (0 <= val && val < 64) return 32;
else if (64 <= val && val < 128) return 96;
else if (128 <= val && val < 192) return 160;
else return 224;
}
int main()
{
PPM ppm("imori.pnm");
int width = ppm.Get_width();
int height = ppm.Get_height();
PPM ppm2(width, height);
for (int j = 0; j < height; j++)
for (int i = 0; i < width; i++)
{
int r = ppm(i, j, 'r');
int g = ppm(i, j, 'g');
int b = ppm(i, j, 'b');
int r2 = _256to4(r);
int g2 = _256to4(g);
int b2 = _256to4(b);
ppm2(i, j, 'r') = r2;
ppm2(i, j, 'g') = g2;
ppm2(i, j, 'b') = b2;
}
ppm2.Flush("out.ppm");
return 0;
}
Reference
이 문제에 관하여(【이미지 처리 100개 노크에 도전】Q.6.감색 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jajagacchi/items/bc354d92f621409a527a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)