컴퓨터 그래픽스 8

선분 교차 여부 확인, intersection 교점 찾기 (작성 중)

Screen 화면에서 선분을 그리는데 Screen 밖 화면에는 line을 그리지 않기 위해 화면과 선분의 교점을 찾아 해당 위치부터 line을 그리게 된다 그래서 화면 스케일의 point들과 내가 화면 안에 그리려는 line의 교점이 있는지 계산해야한다 이 내용이 메인 https://bowbowbow.tistory.com/17 [기하] 외적을 이용해서 선분과 선분의 교차점 구하기 [기하]외적을 이용해서 선분과 선분의 교차점 구하기 목차 [기하]외적을 이용해서 선분과 선분의 교차점 구하기 직선과 직선의 교차점 선분과 선분의 교차점 선분과 선분의 교차여부 판별 Referen bowbowbow.tistory.com 교점 계산은 벡터 외적을 이용한다 외적의 방향이 반대라면 선분이 교차하고 있다고 볼 수 있다고 ..

벡터 내적과 외적의 물리적 의미

벡터 곱에는 두 가지가 있다 Dot (내적) ⋅ Cross (외적) × 둘 다 곱 연산인데 어떤 차이가 있을까? 내적 벡터의 내적은 효율이라고 볼 수 있다 예를 들어 쇼파의 위치를 옮긴다고 했을 때, L의 방향으로 F만큼의 힘을 줘서 움직여야 쇼파를 옮겼다고 할 수 있다. L의 방향으로 힘이 작용되어야 일에 관여, 일을 했다고 볼 수 있다. 수평적으로 동일하게 작용됐을 때, F가 100% 일로 소모됐다고 할 수 있다. 그냥 쇼파를 들었다 내려두면 그건 쇼파를 옮겼다고 할 수 없다. 그래서 수직적으로 작용했을 땐 일을 안했다고 할 수 있다. 내적은 목표하는 방향과 일치하는 성분이 얼마인지를 보는 것 cos연산이기 때문에 일치할수록 커진다 (많으면 많을수록 커짐) (W = FS 인데 유효하지 않을 경우가 있..

[OpenCV] 동전 영상에서 서로 다른 동전들의 개수와 위치를 파악하기

프로젝트의 요구 사항 : 동전 영상에서 동전의 위치와 개수 파악하기 요구 사항 분석 : 1. 노이즈가 있는 영상은 해당 노이즈에 맞는 방법으로 영상 개선을 해준다. ( -> 어떤 이미지가 들어오든 노이즈 개선을 할 수 있어야함) 2. 배경과 동전 영역을 구분해준다. 3. 동전 인식을 한다. 4. 동전 종류를 파악하기 위해 동전의 크기를 구해 어떤 동전 종류인지 인식한다. 1. 영상 개선 임의의 영상을 입력받았을 때, 해당 영상을 파악하고 개선한다. - 임의의 영상 입력받음 - 입력받은 임의의 영상을 파악하여 영상 개선함 - 대조비 개선을 위해 히스토그램 평활화함 이미지를 입력으로 받아올 수 있게 함. 순서는 이미지를 받아오고 해당 이미지를 파악한 후 영상 개선을 해주고 대조비 개선을 위해 히스토그램 평활..

[OpenCV] Filters (LPF, HPF, HFEF)

LPF : Low Pass Filter G(u, v) = H(u, v)F(u, v) = 필터 * 주파수 도메인 이미지 H(u, v) / G(u, v) 저주파 성분만 통과시킴 노이즈 제거하는 스무딩(블러링) 필터 HPF : High Pass Filter G(u, v) = H(u, v)F(u, v) = 필터 * 주파수 도메인 이미지 H(u, v) / G(u, v) 샤프닝 필터 HFEF : High Frequency Emphasis Filter G(u, v) = H(u, v)F(u, v) = 필터 * 주파수 도메인 이미지 H(u, v) / G(u, v) - High boost (High Frequency Emphasis) High boost = (A - 1)Original + Highpass

[OpenCV] 2D FFT (Fast Fourier Transform)

FFT 적용 Fourier Transform을 적용 적용을 하면 (0,0), 화면 좌상단이 중심이고 거기에 저주파가 모여있음 분석을 용이하게 하기 위해 (0,0)을 이미지의 중심으로 이동시키고 Log Scaling을 하여 분석이 용이한 결과값으로 변환 푸리에 변환 : 영상을 시간 도메인에서 주파수 도메인으로 변환 영상처리에서는 2차원 푸리에 변환을 사용한다. 임의의 입력 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는것 (입력 신호를 sin, cos의 주기성분으로 분해하는 것) 각각의 주기함수 성분들은 고유의 주파수와 강도를 가지고 있으며 이들을 모두 합치면 원래의 신호가 된다. FFT 적용 결과를 log scale 푸리에 스펙트럼은 푸리에 변환을 통해 얻은 각 주파수 성분이 원 신호(..

[OpenCV] spatial-domain filter

low contrast 낮은 대조비 개선을 위해 히스토그램 평활화를 해줌. 구한 히스토그램 / 누적 히스토그램 / 평활화된 히스토그램 여러가지 시도를 해보았다. (감마는 0.7로 줌) 히스토그램 평활화 / 감마보정 히스토그램 평활화 후 감마보정 / 감마보정 후 히스토그램 평활화 가져온 이미지가 조금 어둡고 블러링된 이미지이기 때문에, 이미지를 밝게 해주기 위해서 감마보정을 하고 샤프닝 필터를 적용했다. Gaussian noisy image 가우시안 노이즈가 들어간 이미지에 가우시안 필터를 적용했다. 가우시안 노이즈는 자연적으로 랜덤하게 발생하는 노이즈이다. 추가로 메디안 필터도 적용해보았다. 가우시안 필터는 현재 픽셀값과 주변 이웃 픽셀값들의 가중 평균을 이용해서 현재 픽셀의 값을 대체한다. 둘 다 블러..

[OpenCV] 공간 영역에서의 영상 개선

Negative transformation Image negatives s = T(r) = L-1-r (where 0 ≤ r ≤ L-1) 1) 기존에 존재하는 API를 이용해서 구현한 코드 2) 이미지 색상 반전을 위해서, 255 - 현재 픽셀값을 해주었다. 픽셀 값들에 255를 빼주면 0에 가까웠던 어두운 픽셀값은 밝아지고 255에 가까웠던 밝은 픽셀값은 어두워진다. 기존의 API를 이용한 코드와 같은 결과값이 나왔다. Log, inverse-log transformation c = 1 일 때, c = 2 일 때, Log transform은 어두운 부분을 스트레칭 시켜준다. 그래서 어두운 영역에 뭐가 있는지 보고 싶을 때는 이미지를 log transform을 시켜주면 된다. 반대로 Inverse log..