【c++|opencv】二、灰度变换和空间滤波---3.均值滤波

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

均值滤波

1. 均值滤波

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>
#include"Salt.h"

using namespace cv;
using namespace std;

// 定义盒式滤波器
void myfilter(int filter_size,Mat& img_input,Mat& img_output);

int main(){
    Mat img,img_gray,img_output,img_output2;
    img = imread("/home/v/home.png");

    if (img.empty()){
        cout<<"can not load image"<<endl;
        return -1;
    }

    cvtColor(img,img_gray,COLOR_BGR2GRAY);
    Salt(img_gray,5000);  
    imshow("img_gray",img_gray);

    // 自定义滤波
    int filter_size = 7;
    myfilter(filter_size,img_gray,img_output);

    // opencv 自带滤波
    blur(img_gray,img_output2,Size(filter_size,filter_size));

    imshow("img out 1",img_output);
    imshow("img out 2",img_output2);

    waitKey(0);
    return 0;
}

// 盒式滤波
void myfilter(int filter_size,Mat& img_input,Mat& img_output){
    img_output = img_input.clone();

    int k = (filter_size - 1)/2;
    for (int i = k;i<(img_input.rows - k);i++){
        for (int j = k;j<(img_input.cols - k);j++){
            int sum = 0;
            for (int m = -k;m<k+1;m++){
                for (int n=-k;n<k+1;n++)
                {
                    sum += img_input.at<uchar>(i+m,j+n);
                }
            }
            img_output.at<uchar>(i,j) = sum/(filter_size*filter_size);
        }
    }
}
相关推荐
单片机设计·······2 分钟前
【dz-1162】汽车前玻璃雨刮器设计
c++·单片机·嵌入式硬件
AI智讯中枢21 分钟前
高性能 C++ 实战 (五):perf+FlameGraph 火焰图生产实战,精准定位 CPU / 缓存 / 锁瓶颈,避坑 + 完整实操案例
linux·c++·性能调优·性能分析·perf·flamegraph·火焰图
繁华的地方不一定留下你的脚印26 分钟前
C++ 算法与 ranges:用 find_if、transform 写清数据处理意图
开发语言·c++·算法
张小姐的猫28 分钟前
【AI大模型接入SDK】 —— 前端页面 & 项目总结与拓展
前端·数据结构·数据库·c++·人工智能·chatgpt
AC赳赳老秦1 小时前
财报附注表格精准提取:OpenClaw 从 PDF 年报附注挖掘隐藏明细,补齐财务分析维度
java·汇编·c++·python·青少年编程·deepseek·openclaw
欧特克_Glodon1 小时前
OpenCV计算机视觉开发入门与实践(基于C++):专栏内容介绍及目录
c++·人工智能·opencv·计算机视觉
码匠许师傅2 小时前
【C++三方组件】Asio 下篇:C++20 协程版 TCP 客户端与服务端
c++·tcp/ip·c++20
sali-tec2 小时前
C# 基于OpenCv的视觉工作流-章110-YOLO 实例分割
图像处理·人工智能·opencv·算法·yolo·计算机视觉
一只旭宝2 小时前
【C++复习】四种类型转换 + 常见设计模式 + Redis/MySQL(后端面试复习完整版)
c++·redis·笔记·mysql·设计模式
rhett. li2 小时前
用 AI 写 C++ 桌面 UI:TRAE + nim_duilib 实战指南
c++·人工智能·ui