mirror of
https://github.com/2martens/uni.git
synced 2026-05-06 11:26:25 +02:00
[CVV] Finished part one of CCV sheet 5
Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
9
ccv/sheet5/CMakeLists.txt
Normal file
9
ccv/sheet5/CMakeLists.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
project(sheet5)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
|
find_package( OpenCV REQUIRED )
|
||||||
|
|
||||||
|
add_executable(sheet5 main.cpp)
|
||||||
|
target_link_libraries(sheet5 ${OpenCV_LIBS})
|
||||||
50
ccv/sheet5/main.cpp
Normal file
50
ccv/sheet5/main.cpp
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#include <opencv2/opencv.hpp>
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
if ( argc != 2 )
|
||||||
|
{
|
||||||
|
printf("usage: <Image_Path>\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<cv::Mat> gabor_filters = std::vector<cv::Mat>();
|
||||||
|
cv::Size size = cv::Size(20, 20);
|
||||||
|
double wavelength = 3;
|
||||||
|
double standard_deviation = 18;
|
||||||
|
// g_1
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (4.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_2
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (3.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_3
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (2.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_4
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (1.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_5
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, 0, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_6
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (7.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_7
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (6.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
// g_8
|
||||||
|
gabor_filters.push_back(cv::getGaborKernel(size, standard_deviation, (5.0/8.0) * CV_PI, wavelength, 1, 0, CV_32F));
|
||||||
|
|
||||||
|
for (unsigned long i = 0; i < 8; i++) {
|
||||||
|
cv::namedWindow("g_" + std::to_string(i + 1), CV_WINDOW_NORMAL);
|
||||||
|
cv::imshow("g_" + std::to_string(i + 1), gabor_filters.at(i));
|
||||||
|
cv::waitKey(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// read input image
|
||||||
|
cv::Mat image = cv::imread(argv[1]);
|
||||||
|
image.convertTo(image, CV_32F);
|
||||||
|
|
||||||
|
for (unsigned long i = 0; i < 8; i++) {
|
||||||
|
cv::Mat filtered_image;
|
||||||
|
cv::filter2D(image, filtered_image, -1, gabor_filters.at(i), cv::Point(-1, -1), 0, cv::BORDER_CONSTANT);
|
||||||
|
cv::namedWindow("filtered_" + std::to_string(i + 1), CV_WINDOW_NORMAL);
|
||||||
|
cv::imshow("filtered_" + std::to_string(i + 1), filtered_image);
|
||||||
|
cv::waitKey(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user