1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include "HQMatProcessor.hpp"
namespace HQCV { cv::Mat getSharpened(cv::Mat src) { cv::Mat kernel = (cv::Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); cv::Mat ret; cv::filter2D(src, ret, CV_32F, kernel); cv::convertScaleAbs(ret, ret); return ret; } cv::Mat getGray(cv::Mat src) { cv::Mat dst; cv::cvtColor(src, dst, cv::COLOR_BGR2GRAY); return dst; } cv::Mat getSobelX(cv::Mat src) { cv::Mat dst; cv::Sobel(src, dst, CV_16S, 1, 0, 3, 1, 0, cv::BORDER_DEFAULT); cv::convertScaleAbs(dst, dst); return dst; } cv::Mat getSobelY(cv::Mat src) { cv::Mat dst; cv::Sobel(src, dst, CV_16S, 0, 1, 3, 1, 0, cv::BORDER_DEFAULT); cv::convertScaleAbs(dst, dst); return dst; } cv::Mat getSobel(cv::Mat src) { cv::Mat dst; cv::addWeighted(HQCV::getSobelX(src), 0.5, HQCV::getSobelY(src), 0.5, 0, dst); return dst; } cv::Mat getGaussian(cv::Mat src) { cv::Mat dst; cv::GaussianBlur(src, dst, cv::Size(3, 3), 0, 0, cv::BORDER_DEFAULT); return dst; } cv::Mat drawPoint(cv::Mat src, double x, double y) { cv::Mat dst = src.clone(); cv::circle(dst, cv::Point(x, y), 8, cv::Scalar(0, 255, 0, 255)); return dst; } cv::Mat drawLine(cv::Mat src, double x1, double y1, double x2, double y2) { cv::Mat dst = src.clone(); cv::line(dst, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 255, 0, 255)); return dst; } }
|