【화상 처리 100개 노크에 도전】Q.3. 2치화
사용한 라이브러리
【화상 처리 100개 노크】 독자적인 화상 입출력 클래스를 만든다
Q.3. 이진화
이미지를 이진화하라. 2진화란, 화상을 흑백의 2치로 표현하는 방법이다. 여기서, 그레이 스케일에서 임계 값을 128로 설정하고 다음 방정식으로 이진화한다.
y = { 0 (if y < 128)
255 (else)
아직 간단!
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 y = (std::round)(0.2126 * r + 0.7152 * g + 0.0722 * b);
y = (y < 128 ? 0 : 255);
ppm2(i, j, 'r') = y;
ppm2(i, j, 'g') = y;
ppm2(i, j, 'b') = y;
}
ppm2.Flush("out.ppm");
return 0;
}
Reference
이 문제에 관하여(【화상 처리 100개 노크에 도전】Q.3. 2치화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jajagacchi/items/5d9bd6d3f2f61309ae11
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이미지를 이진화하라. 2진화란, 화상을 흑백의 2치로 표현하는 방법이다. 여기서, 그레이 스케일에서 임계 값을 128로 설정하고 다음 방정식으로 이진화한다.
y = { 0 (if y < 128)
255 (else)
아직 간단!
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 y = (std::round)(0.2126 * r + 0.7152 * g + 0.0722 * b);
y = (y < 128 ? 0 : 255);
ppm2(i, j, 'r') = y;
ppm2(i, j, 'g') = y;
ppm2(i, j, 'b') = y;
}
ppm2.Flush("out.ppm");
return 0;
}
Reference
이 문제에 관하여(【화상 처리 100개 노크에 도전】Q.3. 2치화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jajagacchi/items/5d9bd6d3f2f61309ae11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)