Opencv 이미지 처리 그림 추가 테두리
이 튜 토리 얼 에 서 는 그림 을 추가 로 채 우 는 방법 두 가 지 를 간략하게 소개 합 니 다.
프로그램의 실행 절차
2.테두리 복사:원본 그림 가장자리 의 픽 셀 값 에서 테 두 리 를 복사 합 니 다.
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdlib.h>
#include <stdio.h>
using namespace cv;
Mat src, dst;
int top, bottom, left, right;
int borderType;
const char* window_name = "copyMakeBorder Demo";
RNG rng(12345);
int main( int, char** argv )
{
int c;
src = imread( argv[1] );
if( src.empty() )
{
printf(" No data entered, please enter the path to an image file
");
return -1;
}
printf( "
\t copyMakeBorder Demo:
" );
printf( "\t --------------------
" );
printf( " ** Press 'c' to set the border to a random constant value
");
printf( " ** Press 'r' to set the border to be replicated
");
printf( " ** Press 'ESC' to exit the program
");
namedWindow( window_name, WINDOW_AUTOSIZE );
top = (int) (0.05*src.rows); bottom = (int) (0.05*src.rows);
left = (int) (0.05*src.cols); right = (int) (0.05*src.cols);
dst = src;
imshow( window_name, dst );
for(;;)
{
c = waitKey(500);
if( (char)c == 27 )
{ break; }
else if( (char)c == 'c' )
{ borderType = BORDER_CONSTANT; }
else if( (char)c == 'r' )
{ borderType = BORDER_REPLICATE; }
Scalar value( rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255) );
copyMakeBorder( src, dst, top, bottom, left, right, borderType, value );
imshow( window_name, dst );
}
return 0;
}
해명 하 다.우선,우 리 는 우리 가 사용 할 변 수 를 설명 합 니 다.
원본 그림 src 불 러 오기:
창 을 만 들 었 습 니 다:
현재 테두리 크기(상단,아래쪽,왼쪽,오른쪽)를 정의 하 는 인 자 를 초기 화 합 니 다.우리 가 그것들 에 게 준 값 은 src 크기 의 5%이다.
프로그램 이 while 순환 을 시작 합 니 다.사용자 가'c'또는'r'를 누 르 면 borderType 변 수 는 각각 BORDER 를 추출 합 니 다.CONSTANT 또는 BORDERREPLICATE:
매번 교체 중(0.5 초 후)변수 값 업데이트
함수 cv::copy MakeBorder 를 호출 하여 해당 하 는 충전 을 적용 합 니 다:
매개 변수 소개:
src:원본 이미지
dst:대상 이미지
top,bottom,left,right:그림 양쪽 테두리 의 길이(픽 셀 단위).우 리 는 그것들 을 그림 의 원본 크기 의 5%로 정의 합 니 다.
borderType:적용 할 테두리 형식 을 정의 합 니 다.이 예제 에 대해 서 는 상수 나 복사 가 가능 합 니 다.
value:border Type 이 BORDER 라면CONSTANT,이것 은 테두리 픽 셀 을 채 우 는 데 사용 되 는 값 입 니 다.
이전에 만 든 그림 에 출력 그림 을 표시 합 니 다.
효과.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Opencv 학습 노트 (2): Opencv 의 기본 데이터 형식 과 데이터 구조매트릭스 데이터 형식: C 언어 에서 2 차원 데이터 중의 데이터 형식, 예 를 들 어 int, float, char 등 과 같다.Opencv 에서 행렬 의 데이터 형식 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.