#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
void getPrewitt_oper(cv::Mat& getPrewitt_horizontal, cv::Mat& getPrewitt_vertical, cv::Mat& getPrewitt_Diagonal1, cv::Mat& getPrewitt_Diagonal2)
{
//水平方向
getPrewitt_horizontal = (cv::Mat_<float>(3, 3) << -1, -1, -1, 0, 0, 0, 1, 1, 1);
//垂直方向
getPrewitt_vertical = (cv::Mat_<float>(3, 3) << -1, 0, 1, -1, 0, 1, -1, 0, 1);
//对角135°
getPrewitt_Diagonal1 = (cv::Mat_<float>(3, 3) << 0, 1, 1, -1, 0, 1, -1, -1, 0);
//对角45°
getPrewitt_Diagonal2 = (cv::Mat_<float>(3, 3) << -1, -1, 0, -1, 0, 1, 0, 1, 1);
//逆时针反转180°得到卷积核
cv::flip(getPrewitt_horizontal, getPrewitt_horizontal, -1);
cv::flip(getPrewitt_vertical, getPrewitt_vertical, -1);
cv::flip(getPrewitt_Diagonal1, getPrewitt_Diagonal1, -1);
cv::flip(getPrewitt_Diagonal2, getPrewitt_Diagonal2, -1);
}
void edge_
Prewitt算子边缘检测
最新推荐文章于 2023-10-23 10:59:40 发布