컴공지식
-
평행선으로 이미지를 보정하는 방법컴공지식/컴퓨터비전 2024. 11. 11. 20:41
평행선 정보 확인: 주어진 왼쪽 이미지에서 파란색으로 표시된 두 선을 봐라. 이 선들이 실제로는 평행하지만 사진에서는 왜곡 때문에 기울어져 보여. 이런 왜곡을 사다리꼴 왜곡이라고 한다.평행선의 소실점 찾기: 평행한 선들이 기울어져 있다면, 이 선들을 연장했을 때 소실점(vanishing point)에서 만난다는 걸 이용할 수 있다. 소실점은 왜곡을 수정하는 데 필요한 기준이 되니까, 이 두 선을 연장해서 교차하는 점을 찾는다.이미지 변환 행렬 계산: 소실점과 평행선 정보를 사용해 이미지의 원근 왜곡을 보정하는 투영 변환(프로젝티브 트랜스폼)을 할 수 있다. 이미지 처리 도구(OpenCV 등)를 사용해서, 이 소실점 정보를 이용한 변환 행렬을 계산해주면 된다.투영 변환 적용: 이제 계산된 변환 행렬을 이미..
-
퍼스펙티브 변환 과정 예시컴공지식/컴퓨터비전 2024. 11. 11. 20:39
종이의 왜곡된 모서리들을 잡아당겨서 직사각형으로 만들면 된다1. 코너 점 찾기:먼저 왼쪽 이미지에서 네 개의 코너 점을 찾아야 한다. 이미지의 좌상단, 우상단, 좌하단, 우하단에 해당하는 점들을 잡아내는거다.2. 대상 점 설정하기:변환하고 싶은 목표 위치를 설정해야 한다. 원하는 모양이 직사각형이니까, 새 이미지에서 코너 점들을 평평한 직사각형 형태(예를 들어, (0, 0), (width, 0), (width, height), (0, height))로 지정해주면 된다.3. 변환 행렬 계산:이제 OpenCV 같은 라이브러리를 사용해서 원래 점들(왜곡된 모서리)에서 대상 점들(직사각형 모서리)로 변환하기 위한 행렬을 계산한다. 이걸 호모그래피 행렬이라고 부른다. 이 행렬이 이미지 왜곡을 수정하는 역할을 하는..
-
vs문 이해 예시컴공지식/프로그래밍언어론 2024. 11. 10. 16:22
주의할 점은 BoxV를 쓰는 곳이 Box를 생성하는 부분이라는 점그리고 Box가 메모리 주소 1번을 간접 참조한다는 점
-
Projective transformation컴공지식/컴퓨터비전 2024. 11. 9. 22:42
프로젝티브 변환은 8개의 자유도를 가지며, 네 점 간의 크로스 비율만 유지되는 변환이다. 나머지 각도, 거리, 평행성은 변할 수 있다. 무한대 직선이 유한한 곳으로 이동하는 변환이다. 프로젝티브 변환(호모그래피)은 한 평면의 점을 다른 평면의 점으로 변환해서 서로 다른 각도에서 찍은 평면 이미지의 원근 왜곡을 보정하거나 동일한 평면으로 맞춰보는 데 유용한 방법이다. 호모그래피는 3x3 행렬로 표현되는 평면 변환이며, 한 직선 위의 점들이 변환 후에도 같은 직선 위에 유지되는 특징이 있다.프로젝티브 변환을 적용하려면 최소 네 쌍의 대응점이 필요하고, 이를 통해 3x3 행렬의 여덟 개 요소를 계산해 변환을 적용할 수 있다. getPerspectiveTransform 함수는 네 쌍의 대응점을 이용해 3x3 투..
-
-
{with {fac {fun {n} {with {facX {fun {facY} {fun {n} {if0 n 1 {* n {{facY facY} {- n 1}}}}}}} {{facX facX} n}}}} {fac 5}}컴공지식/프로그래밍언어론 2024. 11. 7. 01:24
{with {fac {fun {n} {with {facX {fun {facY} {fun {n} {if0 n 1 {* n {{facY facY} {- n 1}}}}}}} {{facX facX} n}}}} {fac 10}}도저히 맨정신으로는 이걸 이해할 수 없어서 따로 글을 적으며 이해해보려고 한다.{with {fac {fun {n} {with {facX {fun {facY} {fun {n} {if0 n 1 {* n {{facY facY} {- n 1}}}}}}} {{facX facX} n}}}} {fac 5}} 최상위 with 구문with {fac {fun {n} {with {facX {fun {facY} ..
-
SQL 형태들컴공지식/데이터베이스 2024. 11. 5. 13:56
SELECT * FROM Customers; SELECT CustomerName, City FROM Customers; SELECT Country FROM Customers; SELECT DISTINCT Country FROM Customers; SELECT COUNT(DISTINCT Country) FROM Customers; SELECT * FROM Customers WHERE Country='Mexico'; SELECT *FROM Customers WHERE Country='Germany' AND City='Berlin'; SELECT * FROM Cusomers WHERE Country='Germany' AND (City='Berlin' OR City='Munchen'); SELECT * FROM..
-
YOLO 모델 로딩하는 코드컴공지식/컴퓨터비전 2024. 11. 4. 21:42
OpenCV 라이브러리를 사용해서 YOLO (You Only Look Once)라는 객체 탐지 모델을 불러올거다.readNetFromDarknet 함수를 써서 YOLO 모델을 로드한다. // YOLO 모델 설정 파일과 가중치 파일 경로 지정 String modelConfiguration = "yolov2.cfg"; String modelBinary = "yolov2.weights"; // YOLO 모델 로드 Net net = Dnn.readNetFromDarknet(modelConfiguration, modelBinary); // 이미지 프레임을 딥러닝 모델이 처리할 수 있는 blob 형태로 변환 Mat inputBlob = Dnn.blobFromImage(frame, 1 / 255.0, new Siz..