내 이미지에 필터 시퀀스를 복제하려고합니다.이를 위해 Filter2D 커널과 Gaussian 커널이 포함 된 커널을 만들어야합니다. 일반적으로 gaussianBlur를 적용한 다음 filter2D를 적용합니다. 이에 대한 일반적인 명령은 다음과 같습니다1D 가우시안 커널을 사용하여 Filter2D에서 사용자 정의 2D 커널을 수행하는 방법
kernel2D= Mat::ones(kernelSize, kernelSize, CV_32F) *(1/(float)(kernelSize*kernelSize)), Point(-1, -1);
GaussianBlur(src, resultO, Size(kernelSize, kernelSize), sigma);
filter2D(resultO, resultO, resultO.depth(), kernel2D, Point(-1, -1),0,BORDER_DEFAULT);
그래서, 처음에는 매트 :: 이여을 사용 getGaussianKernel 방법 및 1D 커널을 사용하여 가우시안 커널을 만들 수 있습니다. 위의 코드와 같은 결과를 얻기 위해이 두 커널을 곱하려고했습니다. 나는이 과정을 수행 할 때
sigma = 0;
Mat mKernelGauss1 = getGaussianKernel(kernelSize, sigma, CV_32F);
mKernel2D = Mat::ones(1, kernelSize, CV_32F) *(1/(float)(1*kernelSize)), Point(-1, -1);
mResultKernel = mKernelGauss1 * mKernel2D;
, 다음과 같이, 나는 kernelSize이 결과로 kernelSize 커널을 X 얻을, 그럼 나는 내 이미지에이 커널 (mResultKernel)를 적용 할 수 있습니다
filter2D(src, resultO, src.depth(), mResultKernel, Point(-1, -1), 0, BORDER_DEFAULT);
내 문제가 내가 만든이 커널은 gaussianBlur와 filter2D를 순차적으로 수행하는 것과 같은 결과를 내게주지 않습니다. 위에서 제시 한 것처럼 하나의 2D 커널을 사용하여 filter2D 함수를 적용하고 내 이미지를 회선에 연결하려면이 방법을 따라야합니다.
참고 자료를 가져 주셔서 감사합니다.하지만 이미 filter2D를 사용하여 이미지를 convolving하고 있습니다. 커널을 생성하기 만하면됩니다. 그리고 그것이 내 문제입니다. –