[이미지프로세싱]경영대생의 C언어 과제좀 도와주세요ㅜHard!
가람슬기
#include StdAfx.h
#include ImageProcessing.h
/* ================= 영상 보간 (Image Interpolation) ================= */
// 영상을 확대한 후 보간법을 하는 이유는 영상확대의 경우 확대 영상 중간에 없는 값이 발생하게 된다.
// 예를 들어, 2x2의 영상일 경우 4x4로 확대한다면 다음과 같이 될 것이다.
// 문제) original 10 20 = 10 ? 20 ?
// 30 40 ? ? ? ?
// 30 ? 40 ?
// ? ? ? ?
// 여기서 중간 값을 다양한 보간법을 사용하여 예측할 수 있다.
/* ================= 단순 확대 ================= */
// 문제)의 경우 단순 확대를 이용하면 다음과 같은 결과를 얻을 수 있다.
// original 10 20 = 10 10 20 20
// 30 40 10 10 20 20
// 30 30 40 40
// 30 30 40 40
// 즉, 확대 후 값의 있는 픽셀 값을 바로 이웃한 모든 픽셀의 값으로 전달한다.
void Magnification(unsigned char *image, unsigned int nWidth, unsigned int nHeight, unsigned char *result)
{
}
/* ================= 선형 보간법(Linear Interpolation)을 이용한 확대 ================= */
// 문제)의 경우 선형 보간법을 이용하여 확대하면 다음과 같은 결과를 얻을 수 있다.
// original 10 20 = result 10 15 20 15
// 30 40 20 25 30 25
// 30 35 40 35
// 20 25 30 25
// 여기서 확대된 영상의 (0,1)의 좌표값 15는 (10+20)/2의 결과이다.
// 또한 (1, 1)의 좌표값은 이웃한 픽셀 네 개의 좌표값의 평균으로 계산된다. ( 25=(10+20+30+40)/4 )
// 마지막 행과 마지막 열의 값을 계산할 때는 다음의 이웃 픽셀이 없기 때문에 영상이 계속 반복된다고 가정하여 평균값을 계산하다.
// 즉, 원본 영상을 다음과 같다고 보고 계산한다.
// original 10 20 10
// 30 40 30
// 10 20 10
void MagnificationbyInterpolation(unsigned char *image, unsigned int nWidth, unsigned int nHeight, unsigned char *result)
{
}
// 영상 축소
void Reduction(unsigned char *image, unsigned int nWidth, unsigned int nHeight, unsigned char *result)
{
}
// 상하 대칭
void Vertical(unsigned char *image, unsigned int nWidth, unsigned int nHeight, unsigned char *result)
{
}
// 좌우 대칭
void Horizontal(unsigned char *image, unsigned int nWidth, unsigned int nHeight, unsigned char *result)
{
}와 진짜 미치겠네요. C언어 과제인데 이런 어려운 과제를 내주시다니.. 그것도 경영대생한테..ㅜ
image, result 가 1차원 배열(1차원포인터)로 되어있어서 어떻게 처리해야될지 모르겠네요...
완성해야할 5가지 함수중에서 간단한거 하나만이라도 작성해주시거나 힌트좀 주시면 안될까요?