diff options
Diffstat (limited to 'works/life/digital-image-process-lab/MorphologicalTransformation.cpp')
-rw-r--r-- | works/life/digital-image-process-lab/MorphologicalTransformation.cpp | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/works/life/digital-image-process-lab/MorphologicalTransformation.cpp b/works/life/digital-image-process-lab/MorphologicalTransformation.cpp deleted file mode 100644 index 9b1b097..0000000 --- a/works/life/digital-image-process-lab/MorphologicalTransformation.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include <opencv2/highgui.hpp> -#include <opencv2/imgproc.hpp> - -#include <iostream> - -cv::Mat src, erosion_dst, dilation_dst; - -int erosion_elem = 0; -int erosion_size = 0; -int dilation_elem = 0; -int dilation_size = 0; -int const max_elem = 2; -int const max_kernel_size = 21; - -void Erosion(int, void *); -void Dilation(int, void *); - -int main(int argc, char **argv) { - - cv::CommandLineParser parser(argc, argv, - "{@input | LinuxLogo.jpg | input image}"); - src = imread(cv::samples::findFile(parser.get<cv::String>("@input")), - cv::IMREAD_COLOR); - if (src.empty()) { - std::cout << "Could not open or find the image!\n" << std::endl; - std::cout << "Usage: " << argv[0] << " <Input image>" << std::endl; - return -1; - } - namedWindow("Erosion Demo", cv::WINDOW_AUTOSIZE); - namedWindow("Dilation Demo", cv::WINDOW_AUTOSIZE); - cv::moveWindow("Dilation Demo", src.cols, 0); - cv::createTrackbar("Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", - "Erosion Demo", &erosion_elem, max_elem, Erosion); - cv::createTrackbar("Kernel size:\n 2n +1", "Erosion Demo", &erosion_size, - max_kernel_size, Erosion); - cv::createTrackbar("Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", - "Dilation Demo", &dilation_elem, max_elem, Dilation); - cv::createTrackbar("Kernel size:\n 2n +1", "Dilation Demo", &dilation_size, - max_kernel_size, Dilation); - Erosion(0, 0); - Dilation(0, 0); - cv::waitKey(0); - return 0; -} - -void Erosion(int, void *) { - int erosion_type = 0; - if (erosion_elem == 0) { - erosion_type = cv::MORPH_RECT; - } else if (erosion_elem == 1) { - erosion_type = cv::MORPH_CROSS; - } else if (erosion_elem == 2) { - erosion_type = cv::MORPH_ELLIPSE; - } - cv::Mat element = getStructuringElement( - erosion_type, cv::Size(2 * erosion_size + 1, 2 * erosion_size + 1), - cv::Point(erosion_size, erosion_size)); - cv::erode(src, erosion_dst, element); - imshow("Erosion Demo", erosion_dst); -} - -void Dilation(int, void *) { - int dilation_type = 0; - if (dilation_elem == 0) { - dilation_type = cv::MORPH_RECT; - } else if (dilation_elem == 1) { - dilation_type = cv::MORPH_CROSS; - } else if (dilation_elem == 2) { - dilation_type = cv::MORPH_ELLIPSE; - } - cv::Mat element = getStructuringElement( - dilation_type, cv::Size(2 * dilation_size + 1, 2 * dilation_size + 1), - cv::Point(dilation_size, dilation_size)); - dilate(src, dilation_dst, element); - imshow("Dilation Demo", dilation_dst); -} |