본문 바로가기

분류 전체보기271

[컴퓨터그래픽스] 영상 워핑(warping)과 모핑(morphing) 영상 워핑 픽셀의 위치를 이동, 픽셀 별로 이동 정도가 다름. 영상 정합(두 영상 간 정합점을 찾는 것)과 함께 사용도 가능함, 역방향 사상은 아니다. 입력 영상을 토대로 출력 영상을 생성하는 것, 슬퍼하는 모나리자 그림 만드는 것 처럼 포인터 대응 매핑 포인터와 거리에 반비례하여 가중치를 반영, 매핑 제어선을 이용한 워핑 모든 픽셀은 제어선에 영향을 받으며 각 픽셀에 대한 제어선의 영향력을 계산하여 워핑을 처리해야 한다. - 수직교차점 내부 : 제어선과의 수직 거리 그대로 사용 - 수직교차점 외부 : 제어선에 포함된 가장 가까운 점과의 직선 거리 특정 픽셀의 특정 제어선에 관한 가중치 계산 : 영상 모핑 두 개의 다른 영상에서 영상 간 중간(꼭 중간이 될 필요는 없음) 단계의 영상을 생성하는 것. 워핑.. 2023. 4. 25.
[컴퓨터그래픽스] 기하학적 처리 정리 기하학적 처리 화소들의 위치를 변경 확대 사상을 통한 확대의 문제(화질 저하, 계단 현상)를 해결하기 위해 역방향 사상과 양선형 보간법을 활용 선형 보간법 두 포인트 간 비율 계산을 통해 적절한 값 도출, O = (1-k) * a + (k) * b 양선형 보간법 선형 보간법을 세번 사용, 위 x축과 아래 x축의 선형 보간을 계산하여 두 값의 y축 선형 보간 적용 축소 단순 축소의 경우 원본 픽셀 소실, 축소 전 흐리기 적용(서브샘플링) 또는 평균값 필터링을 통해 어느 정도 데이터 유실 방지 회전 전방향 사상 시, 빈 공간 발생 -> 역방향 사상 및 중심점 기준 회전을 통해 문제를 해결, 회전 각도에 따라 출력영상의 크기는 달라진다. (일반적으로는 다 커짐) 각 회전 계산식 : 2023. 4. 25.
[컴퓨터그래픽스] 영역 기반 처리 방법 정리 회선 영역 기반 처리를 위한 기본적인 기법 M:N 회선 마스크를 통해 영역 처리, 이산 또는 연속적인 영역에 따른 계산 법이 약간 차이가 있음, weighted sum 회선 마스크의 특징 - 마스크의 크기는 홀수 -> 동일한 영역의 크기의 마스크가 모든 화소에 적용되어야 함 - 주로 계수들의 합 1, 일부 마스크는 계수 합이 0 영상의 경계처리 방법 임의로 0 삽입 중첩되는 부분만 회선 처리 원본의 크기 확장(임의 0 삽입이 아닌 가장자기 값 복사 등..) 영역 기반 처리 입력 화소와 주위 화소, 즉 영역 통해 출력 화소 결정. 주변의 픽셀에 영향이 있음 회선 기법을 주로 사용 영상 흐리게 하기 주위 픽셀 값들 차를 줄여서 구현 (나눗셈 회선 마스크) 참고) Gaussian Smoothing : 더 성능.. 2023. 4. 25.
[컴퓨터그래픽스] 픽셀 기반 처리 방법 정리 디지털 영상 생성 현실의 영상을 디지털화하기 위해서 샘플링(픽셀)과 양자화(몇 단계의 밝기로 근사화) 두 단계를 통해 생성 샘플링과 양자화에 대한 좋은 유투브 설명 : https://www.youtube.com/watch?v=JPdMQ9-wJyw 컬러 모델 다양한 분야에 맞는 컬러 모델 존재, CMY, RGB, HSI 등 다양한 컬러 모델 존재 HSI (색상, 채도, 명도) 많은 영상처리에서 HSI 모델 사용 -> RGB모델을 HSI모델로 변환해야 함 픽셀 기반 처리 그래픽의 픽셀을 변경하는 처리, 다른 픽셀에 영향 없음 산술 연산 각 픽셀에 일정한 값을 + - * % (산술 연산) 영상의 밝기 조절 : 덧셈, 뺄셈 영상의 명암 대비 조절 : 곱셈, 나눗셈 나눗셈을 하는 경우 픽셀 간 오차가 상대적으로 .. 2023. 4. 25.
[선형대수] 핵, 퇴역 공간과 퇴화차수 , 치역, 치역 공간과 계수 벡터 공간 V, W에 대하여 T : V -> W은 선형 변환이다. 이때.. 핵, 퇴역 공간, 퇴화차수 핵(퇴역 공간) : T(v) = 0, 선형 변환을 통해 결과가 0이 되는 벡터의 집합 퇴화 차수 : 핵의 차원 치역, 치역 공간, 계수 치역(치역 공간) : 해당 선형 변환을 통해 나올 수 있는 모든 경우의 집합 계수 : 치역의 차원 2023. 4. 24.
[OpenGL] 변환 (회전, 이동, 크기 변경) 변환 행렬 초기화 OpenGL에서는 아래와 같은 변환을 위해 변환행렬을 사용합니다. 만일 이전에 사용한 병환 행렬을 초기화하지 않으면 원하는 결과가 나오지 않을 수 있습니다. 아래 함수 호출을 통해 변환 행렬을 항등 행렬로 초기화합니다. glLoadIdentity(); 회전 (Rotation) 기존 위치 기준 0.0 이 아닌 축을 기준으로 주어진 각도만큼 회전합니다. 일반적으로 z축을 기준으로 회전시킵니다. glRotatef(각도, x, y, z); 이동 (Translation) 기존 위치 기준 (일반적으로 중심점)에서 각 좌표계에서 입력한 파라미터 만큼 입력합니다. glTranslatef(x, y, z) 크기 조정 (Scaling) 해당 좌표계의 값이 1.0이 아니면 지정한 비율만큼 확장, 축소합니다... 2023. 4. 24.