분류 전체보기
-
VideoCapture::get(int propId)컴공지식/컴퓨터비전 2024. 8. 31. 14:00
이 함수는 OpenCV에서 영상 파일이나 카메라로부터 영상을 캡처할 때 사용한다.VideoCapture 객체에서 propId라는 값을 통해 특정 속성(property)의 값을 가져온다. 쉽게 말해서, 동영상 파일에서 특정 정보를 알고 싶을 때 이 함수를 쓴다. 예를 들어서, propId에 특정 번호를 넣으면 그에 해당하는 속성을 가져온다. CAP_PROP_FRAME_WIDTH (3): 영상의 너비를 알려준다. CAP_PROP_FRAME_HEIGHT (4): 영상의 높이를 알려준다. CAP_PROP_FPS (5): 영상의 프레임 수를 알려준다. CAP_PROP_FRAME_COUNT (7): 영상의 총 프레임 수를 알려준다.
-
convertScaleAbs 함수컴공지식/컴퓨터비전 2024. 8. 31. 13:55
void convertScaleAbs(InputArray src, OutputArray dst, double);를 알아보자 이 함수는 OpenCV 라이브러리에 있는데, 이미지를 처리할 때 쓴다.src라는 입력 이미지를 받아서 dst라는 출력 이미지로 변환해 준다. 함수 이름처럼 scale과 absolute 변환을 해 준다.scale은 이미지의 픽셀 값을 어떤 숫자로 곱해주는 거고, absolute는 음수 값을 절대값으로 바꿔주는 거다.결국, 이미지의 모든 픽셀 값들이 양수로 바뀐다. 그 후에 각 값을 0에서 255 사이의 값으로 변환해주는 거다.convertScaleAbs 함수가 이 0에서 255 사이의 범위로 변환해주는 이유는,만약 픽셀 값이 이 범위를 벗어나면(예: -50이나 300 같은 값), 그 ..
-
Naming style컴공지식/잡지식 2024. 8. 30. 14:03
우리는 코딩을 하다보면 변수의 이름을 지어줘야할 때가 있다..하지만 모두가 참여하는 프로젝트에서는 이런 변수 이름을 지을 때 룰을 만들어줘야 한다.룰을 만들지 않으면 변수 이름이 뒤죽박죽이라 사용하기 곤란해질 수 있다.이제 각 네이밍 스타일을 알아보자 1, Lower case (소문자 스타일)Example: 모든 문자가 소문자로 적혀진다.단순해서 좋긴 하다 2. Upper case (대문자 스타일)Example: 모든 문자가 대문자이다.많이 쓰면 시끄러워보일 수 있다. 3. Underscore (밑줄 스타일)example: 단어 사이를 밑줄(_)로 구분한다.깔끔해보여서 좋다. 4. Pascal case (파스칼 케이스)Example: 각 단어의 첫 글자를 대문자로 작성한다. 5. Camel case (카..
-
XML Naming rule컴공지식/웹 2024. 8. 30. 13:56
1, Element names are case-sensitive엘리먼트 이름은 대소문자를 구분한다. 예를 들어 과 은 서로 다른 엘리먼트다. 2. Element names must start with a letter or underscore엘리먼트 이름은 반드시 문자(letter)나 밑줄(underscore, _)로 시작해야한다. 숫자나 다른 기호로 시작할 수 없다. 3. Element names cannot start with the letters "xml" (or "XML", "Xml", etc) – not anymore, but discouraged엘리먼트 이름은 "xml"로 시작할 수 없다. 예전에는 아예 안됐지만 요즘은 권장하지 않는 정도이다. 괜히 쓰지 말자 4. Element names ca..
-
Mat copy컴공지식/컴퓨터비전 2024. 8. 30. 00:42
Mat copy 중 Shallow copy 는 Mat 객체를 복사할 때, 데이터 자체를 복사하는 게 아니라, 데이터가 저장된 메모리의 주소만 복사한다.그래서 원본과 복사본이 같은 데이터를 공유하게 된다. Shallow copy는 메모리를 효율적으로 사용하고 싶을 때 유용하지만, 데이터를 독립적으로 수정해야 할 때는 문제가 될 수 있다. Deep copy는 Shallow copy와 반대로 두 객체를 완전히 메모리 상에서 독립 시킨 체로 복사한다.OpenCV에서는 clone()이라는 함수를 사용하여 Deep copy를 한다. 또한 OpenCV에서 copyTo라는 함수도 있는데 이미지를 특정 조건에 맞게 다른 매트릭스로 복사할 때 사용한다.이 함수는 다음과 같이 정의된다.void copyTo(OutputArr..
-
매트릭스 선언컴공지식/컴퓨터비전 2024. 8. 30. 00:24
Mat 뒤의 mtx나 img는 변수 이름이다. Mat mtx(3, 3, CV_32F);row = 3, column =3, 32비트플롯 1채널 Mat mtx(10, 1, CV_64FC2);row = 10, column = 1, 64비트플롯 2채널 Mat img(1080, 1920, CV_8UC3);row = 1080, column = 1920, 8-bit Unsigned 3채널 Mat img(Size(1920, 1080), CV_8UC3);row = 1080, column = 1920, 8-bit Unsigned 3채널 추가로 Mat image(h, w, CV_8UC1, Scalar(255));도 알아보자image라는 이름의 이미지를 생성하는 코드인데 h와 w라는 변수의 값을 받고8-bit Unsigned..
-
signed와 unsigned integer컴공지식/잡지식 2024. 8. 30. 00:09
8-bit unsigned integer를 살펴보자.unsigend integer는 부호 비트가 없어서 양수만 표현할 수 있다.그러니까 2^8 = 256개의 숫자를 표현할 수 있다.따라서 0에서 255까지 표현할 수 있다. 그런데 signed는 맨 앞의 1비트는 숫자의 부호를 나타내는 데 사용된다.0이면 양수, 1이면 음수로 해석된다. 그리고 8비트 중 앞 양수인지 음수인지 나타내는 비트를 제외한 나머지 7비트는 숫자의 크기를 나타낸다.이 경우, 양수는 00000000 (0)부터 01111111 (127)까지음수는 10000000 (-128)부터 11111111 (-1)까지 표현할 수 있다.그래서 총 범위는 -128에서 127까지이다.