트랙 바는 OpenCV에서 다양한 매개변수를 제어하는 데 사용되는 제어 가능한 바입니다. 트랙 바를 사용하여 더 쉽게 만들고 매개변수를 그래픽으로 변경할 수 있습니다. 트랙 바는 이러한 제한을 제거하고 OpenCV를 사용하여 동적 효과를 만들 수 있습니다. 다음 프로그램은 C++를 사용하여 OpenCV에서 트랙바를 추가하는 방법을 보여줍니다. 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> using namespace cv; using namesp
OpenCV의 내장 기능을 사용하여 이미지를 회전하는 것은 쉬운 작업입니다. 이미지를 회전하려면 highgui.hpp 및 imgproc.hpp 헤더 파일을 사용해야 하며 이 프로그램에서 이미지 회전을 처리하는 더 많은 기능을 소개할 것입니다. 다음 프로그램은 C++를 사용하여 OpenCV에서 이미지를 회전하는 방법입니다. 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> us
이 항목에서는 트랙바의 또 다른 응용 프로그램을 살펴보겠습니다. 여기에서는 트랙 바를 사용하여 이미지의 크기를 변경하고 이미지에 테두리를 추가하고 트랙 바를 사용하여 테두리의 크기를 변경합니다. 다음 프로그램을 사용하여 이미지의 크기를 변경하고, 테두리를 추가하고, 테두리의 크기를 변경하고, 이미지를 회전할 수 있습니다. 앞의 예와 비슷합니다. 다음 프로그램은 동일한 트랙바에 여러 슬라이더를 추가하는 방법을 보여줍니다. 예시 #include<iostream> #include<opencv2/highgui/highg
비디오 회전은 이미지 회전과 유사합니다. 유일한 차이점은 스틸 사진을 이미지 매트릭스에 로드하는 대신 비디오를 로드하거나 카메라에서 비디오 스트림을 가져오는 것입니다. 여기서는 동영상을 로드하지 않고 카메라를 사용하여 동영상을 촬영합니다. 동영상 파일을 사용하시려면 동영상 파일의 주소를 정확히 입력하시면 됩니다. 다음 프로그램은 C++를 사용하여 OpenCV에서 비디오를 회전하는 방법을 보여줍니다. 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> #
마우스 이벤트는 OpenCV의 가장 유용한 기능 중 하나입니다. OpenCV에서는 마우스 포인터의 위치를 추적하고 클릭(오른쪽, 왼쪽 및 중간 클릭)을 추적할 수 있습니다. OpenCV는 로봇 및 컴퓨터 비전 분야에서 폭넓게 응용되고 있습니다. 로봇 및 컴퓨터 비전 추적에서는 마우스 포인터와 클릭이 자주 사용됩니다. 여기에서는 이미지에서 마우스 포인터의 위치를 추적하고 클릭을 추적하는 방법을 이해합니다. 다음 프로그램은 마우스 포인터와 클릭의 위치를 추적하는 방법을 보여줍니다. 예 #include#include#inc
특정 색상을 감지하고 색상을 기반으로 개체를 추적하는 방법을 이해합니다. 색상 감지 및 색상 감지 기반 추적 시스템의 성능은 환경에 따라 다릅니다. 방의 조명을 바꾸거나 배경색을 바꾸면 색상 감지에 상당한 영향을 미칩니다. 다음 프로그램은 C++에서 OpenCV를 사용하여 색상을 감지하는 방법을 보여줍니다. 예 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> using name
색상 추적은 색상 감지와 유사합니다. 추적을 위해 감지된 개체의 영역을 계산하기 위해 몇 개의 추가 선을 추가한 다음 해당 영역의 현재 위치를 추적하고 마지막으로 OpenCV의 line() 함수를 사용하여 개체의 이동 경로를 표시합니다. 다음 프로그램은 C++를 사용하여 OpenCV에서 색상을 추적하는 방법을 보여줍니다. 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> us
우리는 이미지에서 얼굴을 감지합니다. 얼굴을 감지하기 위해 detectMultiScale() 함수를 사용했습니다. 이 함수의 실제 형식은 -입니다. 구문 detectMultiScale(source matrix, vector, searchScaleFactor, minNeighbours, flags, minfeatureSize) 함수 인수를 변경하여 detect.MultiSpace() 함수를 제어할 수 있습니다. 이 함수는 다음 인수를 사용합니다. 소스 매트릭스 얼굴이 감지될 매트릭스입니다. 이 경우 비디오 프레임을 유지하는 매트
이미지에 있는 얼굴의 수를 계산하는 것은 쉽습니다. 이전 섹션에서 작성한 프로그램은 이미 faces.size()에 얼굴 개수 정보를 가지고 있습니다. 이 코드 faces.size()는 정수 값을 제공합니다. 예를 들어 int x =faces.size()를 작성하면 x에는 면의 수가 포함됩니다. 다음 프로그램은 주어진 이미지에서 얼굴의 수를 계산하여 콘솔 창에 표시합니다. 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<openc
우리는 OpenCV에서 감지된 얼굴을 자르는 방법을 알게 될 것입니다. 감지된 얼굴을 자르려면 여러 행렬이 필요합니다. 가장 적절한 방법은 이미지 배열을 사용하는 것입니다. 다음 두 줄을 사용하는 이 프로그램에서 두 개의 이미지 행렬을 선언했습니다 - 매트 자른 얼굴[4], 매트 페이스ROI[4]; 첫 번째 행렬은 자른 이미지를 저장하는 것이고 두 번째 행렬은 관심 영역을 정의하는 것입니다. 감지 프로세스에서 먼저 프로그램은 얼굴을 찾아 벡터에 저장합니다. 우리 프로그램에서 벡터의 이름은 faces입니다. 벡터는 여러 요소를
가장 큰 얼굴만 감지하는 방법을 배웁니다. 이 주제는 이전 주제와 동일합니다. 유일한 차이점은 추가 Rect 구조와 for 루프를 사용하여 가장 큰 얼굴을 감지한다는 것입니다. 이 함수의 실제 형식 - Mat faceROI = image_with_humanface(maxRect) maxRect는 이미지에서 가장 큰 얼굴의 면적과 위치 정보를 가지고 있다. 위의 라인은 이미지에서 가장 큰 얼굴이 위치한 동일한 위치에서 maxRect에 저장된 동일한 영역을 자르고 faceROI 행렬에 저장하는 것입니다. 다음 프로그램은 정지 사진
얼굴의 위치를 추적하고 싶을 때는 타원에 중심이 있기 때문에 타원으로 얼굴을 감싸는 것이 좋습니다. 이 중심은 감지된 얼굴의 중심점이기도 합니다. 결과적으로 감지된 얼굴의 위치를 추적하는 것이 더 정확해집니다. 다음 프로그램은 감지된 얼굴의 중심을 추적하여 콘솔 창에 위치를 표시합니다 - 예 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> //This header incl
실시간으로 얼굴을 감지하는 것은 정지 사진에서 얼굴을 감지하는 것과 유사합니다. 유일한 차이점은 실시간 얼굴 감지이며 컴퓨터의 비디오 스트림을 가져와야 합니다. 이 프로그램에서는 VideoCapture() 함수를 사용했습니다. 이 기능은 다른 카메라에서 비디오를 캡처하고 할당된 매트릭스에 프레임을 임시로 저장합니다. 여기에서 이 기능은 기본 카메라에서 비디오를 캡처하고 프레임을 실시간 매트릭스에 임시로 저장합니다. 다음 프로그램은 실시간으로 사람의 얼굴을 감지합니다 - 예시 #include<iostream> #inclu
OpenCV에서 실시간으로 얼굴을 추적하는 방법을 배웁니다. 이 프로그램은 이전 프로그램과 동일하며 차이점은 직사각형 대신 타원을 사용하여 얼굴을 식별하고 추가 cout 문을 사용하여 콘솔 창에 얼굴의 좌표를 표시한다는 점입니다. 실시간으로 사람의 얼굴을 감지하는 다음 프로그램 − 예시 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> //This header includes de
여기서는 OpenCV에서 눈을 감지하는 방법을 배웁니다. 눈을 감지하기 위해 C:/opencv/sources/data/haarcascades에 있는 haarcascade_eye.xml 분류기를 사용합니다. 눈을 감지하려면 이 헤더를 추가해야 합니다. 첫 번째 헤더는 이며 C++ 프로그래밍 언어의 헤더입니다. 읽기 쓰기 이미지 및 사용자 인터페이스 기능은 highgui 헤더에 정의되어 있습니다. 이미지 품질을 향상시키기 위해 imgproc 헤더를 추가해야 하며, 얼굴과 눈을 감지하기 위해 objdetect 헤더도 사용합니다. Op
여기서는 OpenCV에서 눈을 추적하는 방법을 배웁니다. 눈을 감지한 후 추적은 쉽고 간단한 작업입니다. 감지된 눈을 둘러싸기 위해 원을 사용했습니다. 원의 중심을 추적한다는 것은 눈의 중심을 추적하는 것을 의미합니다. 원의 중심을 추적하려면 두 개의 정수 변수가 필요합니다. 이것은 처음 두 줄(9번째 그리고 10 line) main() 함수 안에 있습니다. 정수 변수의 이름은 x_axis와 y_axis입니다. 42행과 43행에서는 중심의 가로 세로 좌표 값이 x_axis 및 y_axis 변수에 복사되어 원의 중심을 가집니다. 4
여기에서는 OpenCV에서 안구의 움직임을 감지하고 추적하는 방법을 배웁니다. 다음 프로그램은 안구를 감지하고 위치를 추적하는 방법을 보여줍니다. 예시 #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2/objdetect/objdetect.hpp> #include<str
이 문제에서는 크기가 n인 배열 arr[]이 제공됩니다. 우리의 임무는 주어진 배열의 모든 창 크기에 대한 최소값의 최대값을 찾는 것입니다. 문제 설명 − 1에서 n까지 변하는 창 크기의 최소값에서 최대값을 찾아야 합니다. 이를 위해 우리는 주어진 창 크기의 하위 배열을 고려하고 각 하위 배열의 최소 요소를 찾은 다음 모든 최소값의 최대값을 찾습니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 arr[] = {4, 1, 2, 4, 5, 1, 2, 4} 출력 5 4 2 1 1 1 1 1 설명 Window Size : 1 =
이 문제에서는 몇 가지 값이 포함된 n개의 주택이 제공됩니다. 우리의 임무는 주택에서 가능한 최대 도난 가치를 찾는 것입니다. 문제 설명 − 각 하우스에 있는 값으로 구성된 배열 house[]가 있습니다. 도둑은 집을 훔치지만 이웃 사람들이 도둑질에 대해 알고 있는 것처럼 인접한 두 집에서 도둑질을 할 수 없습니다. 도둑이 집에서 잡히지 않고 훔칠 수 있는 최대한의 가치를 찾아야 합니다. 문제를 이해하기 위해 예를 들어보겠습니다. 입력 houses[] = {5, 2, 1, 6, 7, 9, 4, 3} 출력 23 설명 The ma
이 문제에서 크기가 n인 2차원 행렬 mat[][]가 주어지며, n은 홀수입니다. 우리의 임무는 행렬에서 정사각형의 최대 변 길이를 찾는 것입니다. 문제 설명 − 둘레 값이 동일하고 행렬과 같은 중심을 공유하는 정사각형 행렬의 길이를 찾아야 합니다. 문제를 이해하기 위해 예를 들어 보겠습니다. 입력 mat[][] = { {2, 4, 6, 6, 5}, {1, 7, 7, 7, 3}, {5, 7, 0, 7, 1}, {3, 7, 7, 7, 1