最大最小值滤波 minfilter mat c++程序

来源:互联网 发布:java免费书籍下载pdf 编辑:程序博客网 时间:2024/05/06 01:07

眼已瞎 感冒了 头晕难过难过难过

不过终于把mat 最小最大值滤波的程序改好了吐舌头吐舌头吐舌头

#include <opencv2\imgproc\imgproc.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\core\core.hpp>#include <iostream>using namespace cv;using namespace std;  Mat MinFilter(Mat src, int ksize) { int r = (ksize - 1) / 2; Mat dst_ex(cv::Size(src.rows + ksize - 1, src.cols + ksize - 1),CV_8UC1); Mat dst( cv::Size(src.rows, src.cols), CV_8UC1); Rect ROI_rec(0, 0,ksize, ksize); copyMakeBorder(src, dst_ex, r, r, r, r, BORDER_DEFAULT); for (int i = 0; i < src.rows; i++) { for (int j = 0; j < src.cols; j++) { Rect roi(i, j, ksize, ksize); Mat roi_of_image = dst_ex(roi); double minVal = 0, maxVal = 0; cv::Point minPt, maxPt; minMaxLoc(roi_of_image, &minVal, &maxVal, &minPt, &maxPt); dst.at<uchar>(i, j) = minVal; } } return dst; } int main() { Mat I, I_gray; I = imread("D:\\ymrf\\enhance\\paper\\test_img\\5.jpg"); int height = I.rows; int width = I.cols; cvtColor(I,I_gray,CV_RGB2GRAY); Mat imgmax; imgmax=MinFilter(I_gray, 15).clone(); imshow("d", I); imshow("max", imgmax); waitKey(0); }



0 0
原创粉丝点击