반응형

안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.

이번 글은 학교에서 수업(영상처리)에 관한 과제입니다.

영상처리에 관련한 문제들입니다.


 

1. 다음 영상의 화질개선에 관한 질문에 답하시오

4비트 영상으로 그래이 준위는 0에서 15사이라고 가정하자.


4

7

6

4

3

5

4

4

8

3

5

4

2

2

4

3

5

5

5

3

4

5

2

2

3

6

4

3

1

1

2

5

10

13

13

15

15

10

2

2

1

0

10

12

15

13

12

10

1

1

1

0

10

11

11

11

10

11

1

1

0

0

0

12

13

12

11

11

1

2

0

2

0

2

6

6

0

1

2

0

0

1

0

0

5

0

0

0

1

0

0

0

3

0

0

0

1

1

1

1


(1) 위 영상의 히스토그램을 그리시오.

     1) 위의 영상은 4bit 영상으로 0~15의 명암을 갖는다.

     2) 히스토그램을 그리기 위해선 각 명암들이 몇 개를 가지고 있는지를 구하고, 히스토그램을 그리면 된다.



        


(2) 위 영상의 히스토그램 평활화를 수행하시오.

    1) 히스토그램의 평활화(정규화) 공식은 아래와 같다.

       각각의 누적합 * (최대명암값 / 전체 픽셀 수)

       각각의 누적합 * (15/100)

    2) 각 명암의 누적합에 0.15를 곱해주면 된다.


(3) 평활화 후의 히스토그램을 그려 보시오.




2. 다음 과정에 적합한 점 연산(point operation) 영상처리 방법은 무엇일까?

(1) 도로위의 차량 객체와 그림자 객체만을 검지

     -> Video background Subtraction


(2) 천체 망원경 사진의 잡음제거

    -> Image averaging For noise reduction


(3) 하늘과 같이 밝은 부분의 객체들을 선명하게 만듦

     -> Contrast adjustment by changing r


(4) 어두운 부분의 객체들을 선명하게 보이도록 만듦.

     -> Contrast adjustment by changing r


* (3)(4) 문항은 감마값을 변화시켜서 점 연산을 수행할 경우로 적합한 감마값을 지적해 보시오.

    -> (3)은 r값을 2r로 키워주면 밝고 어두운 정도가 급격하게 변하여 선명해진다.


    -> (4)는 r값을 0.5r로 낮춰주면 밝고 어두운 정도가 낮아지고, 대략 중간 회색의 밝기를 유지하여 어두운 

        부분의 객체들을 선명하게 보여준다.


(5) 만약 (2)의 잡음제거에서 어떤 별에서 한 지점에서 온 빛이 서로 다른 위치에 등록되었다면

    (2)의 연산을 하기 전에 어떤 작업이 필요한가? 구체적으로 언급해 보시오.

   -> 픽셀의 사각형 배열을 가지고 픽셀의 위치를 이동시켜 픽셀의 값을 비교하고, 최적의 match를 찾아 

       결정한다.


(6) 카메라의 노출(exposure)를 다르게 한 효과를 얻기 위한 방법

     -> High-dynamic range imaging

     -> 서로 다른 노출을 주어 여러 개의 이미지로부터 높은 dynamic range를 갖는 방법

     -> 톤 매핑을 통해 만들어낸 이미지라고도 합니다.


3. 문제 1의 영상에서 아래 매스크 영상과 같은 북서 방향의 코너(corner)를 검출하고자 한다.

(1) 만약 문제 1 영상의 음영부분과 아래 영상이 일치했을 때 SSD 값은 얼마인가?

    -> SSD(Sum of Squared Difference)는 같은 위치에 있는 픽셀의 차를 구해서 제곱한 값을 다 더해 

       영역의 유사성 측정을 하는 것을 말합니다. 유사할 경우 SSD의 값은 0에 가까워집니다.

    


* SSD 구하는 소스 코드

#include<stdio.h>

int main()

{

int A[10][10] = {

{4,7,6,4,3,5,4,4,8,3},

{5,4,2,2,4,3,5,5,5,3},

{4,5,2,2,3,6,4,3,1,1},

{2,5,10,13,13,15,15,10,2,2},

{1,0,10,12,15,13,12,10,1,1},

{1,0,10,11,11,11,10,11,1,1},

{0,0,0,12,13,12,11,11,1,2},

{0,2,0,2,6,6,0,1,2,0},

{0,1,0,0,5,0,0,0,1,0},

{0,0,3,0,0,0,1,1,1,1}

};

int B[4][3] = {

{0,0,0},

{0,0,0},

{0,15,15},

{0,15,15}

};

int C[7][8];

int count = 0;

int count2 = 0;

int sum = 0;

for(int b=0;b<7;b++)

{

printf("count2 값 : %d\n",count2);

for(int a=0;a<8;a++)

{

printf("count 값 : %d\n",count);

for(int i=0;i<4;i++)

{

for(int j=count;j<count+3;j++)

{

printf("i값 = %d j 값 = %d\n",i,j);

//printf("%d\n",(A[i+count2][j]-B[i][j-count])*(A[i+count2][j]-B[i][j-count]));

sum += (A[i+count2][j]-B[i][j-count])*(A[i+count2][j]-B[i][j-count]);

}

}

printf("%d\n",sum);

sum = 0;

count++;

if(count==8)

{

count = 0;

}

}

count2++;

}


}



(2) 또한 다른 부분의 SSD 값과 비교할 경우 어떤 특징을 가지겠는가?

    -> 위에서 말한 것처럼, SSD를 비교하면 기존과 유사성을 확인할 수 있습니다.



----------------------------------------------------------------------------------

(3) 이런 방법으로 북동, 남서, 남동 방향의 코너를 모두 찾고자 한다면 어떤 다른 세 개의 매스크를 정의해서 코너를 찾겠는가?

(4) SSD의 측도(metric)의 문제는 무엇인가?

 

0

0

0

0

0

0

0

15

15

0

15

15

 

4. 다음 점 연산(point operation) 함수에 관한 질문에 답하시오.

(1) 영상에 어두운 부분이 많아 이 부분들을 좀 더 자세히 표현하고자 한다면 어떤함수를 쓰는 것이 바람직할까?


(2) 반대로 너무 밝은 부분이 많아 이 부분들을 좀 더 자세히 표현하고자 한다면 어떤함수를 쓰는 것이 바람직할까?


(3) 영상이 밝은 부분은 너무 밝고 그렇지 않은 부분은 너무 어둡다면 어떤 적응적인 방법을 적용하여 HDR과 유사한 결과를 도출할까? (이것은 실제 HDR 알고리즘과는 다름)


(4) negative 함수를 쓰면 어떤 영상을 얻을 수 있겠는가?


(5) 만약 어떤 문턱치 이상은 L-1 그렇지 않으면 영상의 그래이 준위를 그대로 하는 점연상을 수행하려면 함수는 어떤 모습일까?


반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기