OpenCV 는 이미지 의 선 궤적 을 식별 합 니 다.
그림 은 메모리 에 2 차원 행렬 로 저장 되 어 있 으 며,컬러 그림 이 라면 GBR 3 채널 이 고,그 레이스 케 일 은 단일 채널 이다.이 강 좌 는 OpenCV 로 도형 의 선,곡선 등 궤적 을 식별한다.
소프트웨어 환경:Win7-32,VS 2010,OpenCV 2.4.9
(1)그 레이스 케 일 로 그림 가 져 오기
Mat src = imread("1.jpg", 0);
(2)제 생각:도형 중의 모든 픽 셀 점 의 차이 에 따라 판단 하고 원 그림 의 그 레이스 케 일 그림 을 이치 화 처리 합 니 다.선의 구역 픽 셀 이 0 이 아니 라 라인 이 있 는 구역 을 255 로 설정 한 다음 에 한 열 씩 픽 셀 구 화 를 합 니 다.만약 에 열 이 0 보다 크 면 라인 이 검 측 된 것 입 니 다.이때 이 열의 스 캔 을 끝내 고 다음 열 을 계속 스 캔 합 니 다.이렇게 하면 선의 궤적 을 얻 을 수 있다.2 값 처리:
threshold(src, dst, 100, 255, CV_THRESH_BINARY_INV); //
열 별로 스 캔 하기:
// , , , , 0; 0
for(int w = 0; w < nCols; w++)
{
int sum = 0;
for(int h = 0; h < nRows; h++)
{
uchar *pRow = dst.ptr<uchar>(h, w); //
sum += (int)(*pRow);
if(sum > 0) // , 0
{
cout << " ,"; // , , 。
cout << " : X = " << w << ", Y = " << h << endl;
fout << " : X = " << w << ", Y = " << h << endl; // ,
sum = 0;
break;
}
}
}
전체 코드 는 다음 과 같 습 니 다.
#include <iostream>
#include <opencv2/opencv.hpp>
#include <fstream>
using namespace std;
using namespace cv;
int main()
{
Mat src = imread("1.jpg", 0);
//imshow("src", src);
Mat dst;
threshold(src, dst, 100, 255, CV_THRESH_BINARY_INV); //
//imshow("dst", dst);
int nRows = dst.rows;
int nCols = dst.cols;
ofstream fout("data.txt");
// , , , , 0; 0
for(int w = 0; w < nCols; w++)
{
int sum = 0;
for(int h = 0; h < nRows; h++)
{
uchar *pRow = dst.ptr<uchar>(h, w); //
sum += (int)(*pRow);
if(sum > 0) // , 0
{
cout << " ,"; // , , 。
cout << " : X = " << w << ", Y = " << h << endl;
fout << " : X = " << w << ", Y = " << h << endl; // ,
sum = 0;
break;
}
}
}
waitKey();
cout << endl;
system("pause");
return 0;
}
Qt 에서 시 뮬 레이 션 을 하면 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.현재 의 식별 은 위 에서 보 듯 이 추 후 계속 업 데 이 트 될 것 입 니 다.좋 은 처리 방법 이 있 으 면 여러분 의 블 로 거 들 이 고 쳐 주 십시오.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 2017에서 OpenCV 템플릿 프로젝트 만들기・Windows 7 Professional 64bit ・Visual Studio 2017 Version 15.9.14 · OpenCV 3.4.1 OpenCV의 도입 방법 등은 아래를 참조하십시오. Visual Stu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.