텍스트가 원래 문서의 경우, 허가없이 복제 할 수 없다
원래 블로거의 블로그 주소 : https://blog.csdn.net/qq21497936
원래 블로거 탐색 블로그 : https://blog.csdn.net/qq21497936/article/details / 102 478 062
이 문서의 블로그 주소 : https://blog.csdn.net/qq21497936/article/details/104554302
디렉토리
OpenCV의 개발 상자
" OpenCV의 개발 노트 (사각형) : 사용 mingw530_32 컴파일 openCV3.4.1의 소스 코드, 빌드 Qt5.9.3 에서 OpenCV의 개발 환경 ."
" 에서 OpenCV 개발 노트의 (a)에서 OpenCV 프리젠 테이션은, 컴파일 "
" OpenCV의 개발 노트 (B) : cvui의 인터페이스 "
" OpenCV의 개발 노트 (C)에서 OpenCV 이미지 개념 및 기본 작동 ."
" OpenCV의 개발 노트 (d)는 : OpenCV의는 가져 오기 및 저장 사진과 비디오 데이터 ."
" OpenCV의 개발 노트 (V) : OpenCV의 읽기 작업 카메라 "
" OpenCV의 개발 정보 (VI) :이 OpenCV의 데이터 구조, 색상, 색 공간 변환 함수를 기초 "
" 에서 OpenCV 개발 노트 (칠) : OpenCV의 기본 그래픽 그리기 "
" OpenCV의 개발 정보 (VIII)에서 OpenCV 미러링 공통 동작 타이밍, 스케일링, 회전, "
" OpenCV의 개발 정보 (IX) 다음에서 OpenCV 영역 화상합니다 (ROI )과 전, 부분 화상을 혼합 "
" OpenCV의 개발 노트 ( 열)에서 OpenCV 이미지의 색상 채널 분리 이미지 색상 및 멀티 채널 믹싱 "
" OpenCV의 개발 노트 (XI)는 :에서 OpenCV 컴파일 지원 GPU는 (CUDA) 윈 - Qt는-mingw32의 개발 가속화 컴파일러 ."
" OpenCV의 개발 정보 (XIII)에서 OpenCV 이미지 콘트라스트, 밝기 조정 "
" OpenCV의 개발 정보 (XIV)의 선형 필터링을위한 기본 알고리즘 - 차단 필터 "
" OpenCV의 개발 정보 (XV) : 선형 필터링 알고리즘의 기초 - 평균 필터 "
" OpenCV의 개발 노트 (XVI) : 선형 필터링을위한 기본 알고리즘 - 가우스 필터 "
" OpenCV의 개발 노트 (17)는 선형 필터링 알고리즘과 비교의 기초 - 블록 평균 가우시안 "
" OpenCV의 개발 노트 (XVIII) : 비선형 필터링 알고리즘의 기초 - 중간 필터링 "
" OpenCV의 개발 정보 (XIX) 비선형 필터링 알고리즘의 기초 - 양자 필터링 "
" OpenCV의 개발 정보 (XX) 알고리즘의 비교를 위해 비선형 필터링 기준 - 여과의 양자의 값이 "
"OpenCV의 개발 노트 (XXI) : 형태 학적 필터링 알고리즘의 기초 - 확장"
"OpenCV의 개발 정보 (XXII) 형태학 필터링 알고리즘의 기초 - 부식"
"OpenCV의 개발 정보 (XXIII) 형태학 필터링 알고리즘에 기초하여 - (부식 1 팽창 후) 개방 동작."
"OpenCV의 개발 노트 (24) 형태 적 필터링 알고리즘에 기초하여 - (부식 1 팽창 후) 개폐 동작."
"OpenCV의 개발 노트 (XXV) : 형태 학적 필터링 알고리즘의 기초 - 흰색 모자"
"OpenCV의 개발 노트 (26) : 형태 학적 필터링 알고리즘의 기초 - 검은 모자"
보충에 계속 ...
OpenCV의 개발 정보 (XX) 알고리즘의 비교를 위해 비선형 필터링 기준 - 양자 필터링 값
머리말
몇몇은 두 개의 비선형 필터링하기 전에 배운하지만, 필터링 옵션은 여전히 사진의 특성에 따라 선택해야하는 방법을 비선형, 두 개의 비선형 필터의 비교에서이 장에서는 여러 이미지를 사용하려고합니다.
비선형 필터 두 종류의 비교
데모
소스 데모
void OpenCVManager::testMediaAndBilateralFilter()
{
QString fileName1 = "E:/qtProject/openCVDemo/openCVDemo/modules/openCVManager/images/6.jpg";
cv::Mat srcMat = cv::imread(fileName1.toStdString());
cv::resize(srcMat, srcMat, cv::Size(400, 300));
cv::String windowName = _windowTitle.toStdString();
cvui::init(windowName);
if(!srcMat.data)
{
qDebug() << __FILE__ << __LINE__
<< "Failed to load image:" << fileName1;
return;
}
cv::Mat dstMat;
dstMat = cv::Mat::zeros(srcMat.size(), srcMat.type());
cv::Mat windowMat = cv::Mat(cv::Size(dstMat.cols * 3, dstMat.rows * 2),
srcMat.type());
int ksize = 1; // 核心大小
int d = 1;
int sigmaColor = 100;
int sigmaSpace = 100;
cvui::window(windowMat, dstMat.cols, 0, dstMat.cols, dstMat.rows, "settings");
while(true)
{
windowMat = cv::Scalar(0, 0, 0);
{
// 原图先copy到左边
cv::Mat leftMat = windowMat(cv::Range(0, srcMat.rows),
cv::Range(0, srcMat.cols));
cv::addWeighted(leftMat, 1.0f, srcMat, 1.0f, 0.0f, leftMat);
// 中间为调整滤波参数的相关设置
cvui::printf(windowMat, 500, 120, "ksize");
cvui::trackbar(windowMat, 500, 140, 200, &ksize, 0, 10);
// 中值滤波
cv::medianBlur(srcMat, dstMat, ksize * 2 + 1);
// 效果图copy到右边
// 注意:rang从位置1到位置2,不是位置1+宽度
cv::Mat rightMat = windowMat(cv::Range(0, srcMat.rows),
cv::Range(srcMat.cols * 2, srcMat.cols * 3));
cv::addWeighted(rightMat, 0.0f, dstMat, 1.0f, 0.0f, rightMat);
}
{
// 原图先copy到左边
cv::Mat leftMat = windowMat(cv::Range(srcMat.rows, srcMat.rows * 2),
cv::Range(0, srcMat.cols));
cv::addWeighted(leftMat, 1.0f, srcMat, 1.0f, 0.0f, leftMat);
// 中间为调整滤波参数的相关设置
cvui::printf(windowMat, 500, 40 + 300, "d");
cvui::trackbar(windowMat, 500, 60 + 300, 200, &d, 0, 10);
// 中间为调整滤波参数的相关设置
cvui::printf(windowMat, 500, 120 + 300, "sigmaColor");
cvui::trackbar(windowMat, 500, 140 + 300, 200, &sigmaColor, 0, 1000);
// 中间为调整滤波参数的相关设置
cvui::printf(windowMat, 500, 200 + 300, "sigmaSpace");
cvui::trackbar(windowMat, 500, 220 + 300, 200, &sigmaSpace, 0, 1000);
// 双边滤波
cv::bilateralFilter(srcMat,
dstMat,
d,
sigmaColor / 10.f,
sigmaSpace / 10.f);
// 效果图copy到右边
// 注意:rang从位置1到位置2,不是位置1+宽度
cv::Mat rightMat = windowMat(cv::Range(srcMat.rows, srcMat.rows * 2),
cv::Range(srcMat.cols * 2, srcMat.cols * 3));
cv::addWeighted(rightMat, 0.0f, dstMat, 1.0f, 0.0f, rightMat);
}
// 更新
cvui::update();
// 显示
cv::imshow(windowName, windowMat);
// esc键退出
if(cv::waitKey(25) == 27)
{
break;
}
}
}
버전 번호 v1.15.0에 해당 프로젝트 템플릿
해당하는 버전 번호 v1.15.0
원래 블로거의 블로그 주소 : https://blog.csdn.net/qq21497936
원래 블로거 탐색 블로그 : https://blog.csdn.net/qq21497936/article/details/102478062를
이 문서의 블로그 주소 : HTTPS : // 블로그 .csdn.net / qq21497936 / 기사 / 세부 / 104554302