opencv 추출 수평 및 수직 라인

2946 단어 opencv라인 추출
본 논문 의 사례 는 opencv 추출 수준 과 수직 라인 의 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
말 이 많 지 않 으 니 먼저 결 과 를 보아 라.

우 리 는 가장 항상 추출 하 는 것 을 볼 수 있다.수평선.
코드 를 입력 하 세 요:

// opencv0013.cpp :              。
//
 
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
 
int main()
{
 Mat src, dst;
 src = imread("D:/images/1.png");
 if (src.empty())
 {
 cout << "your image is null,please check your path" << endl;
 return -1;
 }
 char INPUT_WIN[] = "input image";
 char OUTPUT_WIN[] = "result image";
 namedWindow(INPUT_WIN, CV_WINDOW_AUTOSIZE);
 imshow(INPUT_WIN, src);
 
 //      
 Mat gray_src;
 cvtColor(src, gray_src, CV_BGR2GRAY);
 imshow("gray image", gray_src);
 
 //       
 Mat binImg;
 adaptiveThreshold(~gray_src, binImg, 255, 
 ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY,15, -2);
 imshow("binary image", binImg);
 
 //      
 Mat hline = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1),
 Point(-1, -1));
 //      
 Mat vline = getStructuringElement(MORPH_RECT,Size(1,src.rows/16),
 Point(-1, -1));
 //     
 Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3),
 Point(-1, -1));
 
 //Mat temp;
 //erode(binImg, temp, kernel);
 //dilate(temp,dst,kernel);
 morphologyEx(binImg, dst, CV_MOP_OPEN, hline); //         
 bitwise_not(dst, dst);//    255 - SrcPixel
 imshow("Final Result", dst);
 
 waitKey(0);
 return 0;
}
이론 해석:

2 값 그림 과 그 레이스 케 일 그림 의 팽창 동작:

2 값 이미지 와 그 레이스 케 일 이미지 의 부식 작업


adaptiveThreshold 함수 의 인자:

adaptiveThreshold(
Mat src, //        
Mat dest, //     
double maxValue, //        
int adaptiveMethod //      ,       C 
  // ADAPTIVE_THRESH_MEAN_C , ADAPTIVE_THRESH_GAUSSIAN_C 
int thresholdType,//     
int blockSize, //    
double C //   C      ,0,  
)
bitwise_not(Mat bin,Mat dst)픽 셀 추출 반작용,255 C SrcPixel  여 기 는 안 할 게 요.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기