ロバート・オペレーター:
ロバート・X演算子: ロバート・Y-演算子:
コード:
書式#include <opencv2 / opencv.hpp> の#include <iostreamの> 名前空間stdを使用。 名前空間の品種を使用しました。 マットSRC、robertx、roberty。 INTメイン(int型ARGC、チャー** ARGV){ SRC =関数imread( "D:/OpenCVprj/image/test3.jpg")。 関数imshow( "SRC"、SRC); //ロバートX算子 マットrobert_x =(Mat_ <整数>(2、2)<< 1、0、0、-1); filter2D(SRC、robertx、-1、robert_x、点(-1、-1)、0.0)。 関数imshow( "robertx"、robertx)。 //ロバート・Y算子 マットrobert_y =(Mat_ <整数>(2、2)<< 0、1、-1、0); filter2D(SRC、roberty、-1、robert_y、点(-1、-1)、0.0)。 関数imshow( "roberty"、roberty)。 waitKey(0)。 0を返します。 }
ソーベル演算子:
ソーベルX演算子: SobelオペレータY:
コード:
#include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; Mat src, robertx, roberty, sobel_x, sobel_y; int main(int argc, char** argv) { src = imread("D:/OpenCVprj/image/test3.jpg"); imshow("src", src); //Robert X 算子 //Mat robert_x = (Mat_<int>(2, 2) << 1, 0, 0, -1); //filter2D(src, robertx, -1, robert_x, Point(-1, -1), 0.0); //imshow("robertx", robertx); //Robert Y 算子 //Mat robert_y = (Mat_<int>(2, 2) << 0, 1, -1, 0); //filter2D(src, roberty, -1, robert_y, Point(-1, -1), 0.0); //imshow("roberty", roberty); //Sobel X算子 Mat sobelx = (Mat_<int>(3, 3) << -1, 0, 1, -2, 0, 2, -1, 0, 1); filter2D(src, sobel_x, -1, sobelx, Point(-1, -1), 0.0); imshow("sobel_x", sobel_x); //Sobel Y算子 Mat sobely = (Mat_<int>(3, 3) << -1, -2, -1, 0, 0, 0, 1, 2, 1); filter2D(src, sobel_y, -1, sobelx, Point(-1, -1), 0.0); imshow("sobel_y", sobel_y); waitKey(0); return 0; }
拉普拉斯算子:
代码:
#include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; Mat src, robertx, roberty, sobel_x, sobel_y, laplance_image; int main(int argc, char** argv) { src = imread("D:/OpenCVprj/image/test3.jpg"); imshow("src", src); //Robert X 算子 //Mat robert_x = (Mat_<int>(2, 2) << 1, 0, 0, -1); //filter2D(src, robertx, -1, robert_x, Point(-1, -1), 0.0); //imshow("robertx", robertx); //Robert Y 算子 //Mat robert_y = (Mat_<int>(2, 2) << 0, 1, -1, 0); //filter2D(src, roberty, -1, robert_y, Point(-1, -1), 0.0); //imshow("roberty", roberty); //Sobel X算子 //Mat sobelx = (Mat_<int>(3, 3) << -1, 0, 1, -2, 0, 2, -1, 0, 1); //filter2D(src, sobel_x, -1, sobelx, Point(-1, -1), 0.0); //imshow("sobel_x", sobel_x); //Sobel Y算子 //Mat sobely = (Mat_<int>(3, 3) << -1, -2, -1, 0, 0, 0, 1, 2, 1); //filter2D(src, sobel_y, -1, sobelx, Point(-1, -1), 0.0); //imshow("sobel_y", sobel_y); //拉普拉斯算子 Mat kernel_laplance = (Mat_<int>(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0); filter2D(src, laplance_image, -1, kernel_laplance, Point(-1, -1), 0.0); imshow("laplance_image", laplance_image); waitKey(0); return 0; }