2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
OpenCV에서filter2D
이 기능은 다양한 선형 필터를 적용하기 위해 이미지를 컨볼루션하는 데 매우 강력한 도구입니다. 이 함수는 이미지의 각 픽셀을 처리하고 지정된 컨볼루션 커널(또는 필터)로 컨벌루션하여 이미지의 특성을 수정합니다.다음은 약filter2D
기능의 상세한 소개:
OpenCV에서는filter2D
함수의 프로토타입은 다음과 같습니다.
void cv::filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel,
Point anchor = Point(-1,-1), double delta = 0,
int borderType = BORDER_DEFAULT);
src
크기와 채널 수가 동일해야 합니다.dst
이전에 필터링된 픽셀에 추가되었습니다.BORDER_CONSTANT
、BORDER_REPLICATE
、BORDER_REFLECT
기다리다.filter2D
이 함수는 실제로 컨볼루션 작업을 수행합니다(비록 기술적으로는 커널 뒤집기가 없기 때문에 엄격한 컨볼루션이 아닌 상관 관계를 계산하지만). 컨볼루션 작업에는 컨볼루션 커널을 입력 이미지 위로 "슬라이딩"하고 컨볼루션 커널과 동일한 크기의 각 하위 행렬의 해당 요소를 곱한 다음 결과를 추가하는 작업이 포함됩니다. 이 프로세스는 출력 이미지의 해당 위치에 배치되는 새로운 픽셀 값을 생성합니다. 컨벌루션 커널이 전체 입력 이미지 위로 미끄러지면서 전체 출력 이미지가 생성될 때까지 이 프로세스가 반복됩니다.
컨볼루션 커널을 변경함으로써,filter2D
함수는 다음을 포함하되 이에 국한되지 않는 다양한 이미지 처리 효과를 얻을 수 있습니다.
filter2D
함수 자체는 가우스 커널 생성을 직접 제공하지 않지만 전달될 수 있습니다.getGaussianKernel
함수는 가우스 커널을 생성하고 다음을 사용합니다.filter2D
가우스 필터링을 수행합니다.다음은 용도입니다filter2D
함수 평균 필터링의 예제 코드(Python 버전):
#include