C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

news2024/11/25 1:46:22

效果

项目

代码

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using static System.Net.Mime.MediaTypeNames;

namespace OpenCvSharp_模糊检测_拉普拉斯算子_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
        string image_path = "";
        Mat image = new Mat();
        Mat gray = new Mat();
        Mat laplacian = new Mat();

        double threshold = 100;
        double measure = 0;

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = fileFilter;
            if (ofd.ShowDialog() != DialogResult.OK) return;
            pictureBox1.Image = null;
            image_path = ofd.FileName;
            pictureBox1.Image = new Bitmap(image_path);
            textBox1.Text = "";
            image = new Mat(image_path);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (image_path == "")
            {
                return;
            }

            Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);

            Cv2.Laplacian(gray, laplacian, gray.Type(), 3, 1, 0, BorderTypes.Default);

            Cv2.MeanStdDev(laplacian, out var mean, out var stddev);

            measure = stddev.Val0 * stddev.Val0;

            if (measure > threshold)
            {
                textBox1.Text = "不模糊,拉普拉斯算子方差: " + measure.ToString();
            }
            else
            {
                textBox1.Text = "模糊,拉普拉斯算子方差: " + measure.ToString();
            }

        }
    }
}

Demo下载

模糊度检测算法来自 :https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑屏幕实时监控软件有哪些(监控电脑操作的软件叫什么?)

随着科技的不断发展,人们对于电脑使用的需求也越来越高。无论是工作还是娱乐,我们都希望能够更加高效地利用电脑。为了满足这一需求,实时监控电脑屏幕软件应运而生。本文将为大家介绍几款实用的实时监控电脑屏幕软件,帮助大家更好…

架构问题:技术选型

1. 几款数据库特性及如何选型 1.MySQL:一种常用的开源关系型数据库管理系统,可以快速访问大量数据,并支持多用户同时访问。其最大的优点在于成本低,易于安装和配置,因此被广泛应用于各种中小型企业和网站。支持读写分离…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用(single page web application,SPA)。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面,只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…

软考 -- 计算机学习(2)

文章目录 一、安全性知识1.1 信息安全和信息系统安全1.2 信息安全技术1.3 网络安全技术 二、多媒体技术三、软件工程基础知识3.1 信息系统生命周期3.2 软件过程模型3.3 信息系统开发方法3.4 系统分析和设计概述3.5 结构化开发方法3.6 系统运行与维护 四、项目管理4.1 进度管理4…

(避开网上复制操作)最详细的树莓派刷机配置(含IP固定、更改国内源的避坑操作、SSH网络登录、VNC远程桌面登录)

一、准备工作 SD卡格式化 二、 树莓派系统环境搭建(官方) 官方镜像 1.1、 必备的配件 读卡器, 内存卡(强烈推荐 32GB 内存卡, #lite 命令行界面版本至少需要 8G, 图形化带桌面版镜像需要 16GB&#xf…

Java之异常的详细解析

1. 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最…

web自动化jenkins+git+allure

jenkins -- 持续集成平台 -- 持续集成的场景 -- 【持续】【集成】自动执行你的任务 --- 定时任务 -- 结果通知 -- 报告展示安装jenkins --- http://testingpai.com/article/16092251322041、工作空间 - jenkins的工作空间job任务的工作空间 -- 给任务存放数据/资料 -- 生成的…

闭着眼睛安装Neoj4版本(5.12.0 Community windows)

1.安装 Java SE 17.0.5 (及以上,建议和我一样),安装完配置环境变量,成功标志(cmd输出java -version的内容) 1.上Neo4j Download Center - Graph Database & Analytics 3. 4.进入cmd &#…

tcpdump常用命令

需要安装 tcpdump wireshark ifconfig找到网卡名称 eth0, ens192... tcpdump需要root权限 网卡eth0 经过221.231.92.240:80的流量写入到http.cap tcpdump -i eth0 host 221.231.92.240 and port 80 -vvv -w http.cap ssh登录到主机查看排除ssh 22端口的报文 tcpdump -i …

Java拓展——常见数据结构(数组,栈,链表,树,图)

Java基础11——数据结构 文章目录 Java基础11——数据结构数据结构常见的数据结构数组栈栈简介如何创建一个类实现栈的功能?**栈使用场景**队列队列简介如何实现?**队列分类**链表**单链表****循环链表****双向链表****双向循环链表****链表使用场景****数组** **vs** **链表…

听GPT 讲Istio源代码--cni

在 Istio 项目中, cni: CNI 目录包含了 Istio CNI 插件的相关代码和配置文件。CNI(Container Network Interface)是一个用于配置容器网络的接口规范。Istio CNI 插件用于将 Istio 的网络功能集成到容器运行时环境中,以便实现对微服…

Nvidia计算卡扫盲

title: Nvidia计算卡扫盲 sidebarDepth: 4 layout: AtmLayout GPU 大的方面来讲, 由显存计算单元组成; 显存 GPU板卡上的DRAM容量大,速度慢,CPU和GPU都可以访问 计算单元 Streaming Multiprocessor,执行计算, 每个…

【FAQ】安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

开发高性能知识付费平台:关键技术策略

引言 在构建知识付费平台时,高性能是确保用户满意度和平台成功的关键因素之一。本文将探讨一些关键的技术策略,帮助开发者打造高性能的知识付费平台。 1. 前端性能优化 使用CDN加速资源加载 使用内容分发网络(CDN)来托管和加…

解决Office Word另存为PDF卡死的问题

今天突然间遇到这个问题,在网上找了好久都没有想要的答案。后来一步一步摸索终于找到了问题所在,希望这篇文章能帮助有同样问题的各位! 1.问题 当word文件点击另存为PDF格式时,下一刻光标变为加载状态,并且一直在转圈…

数据结构----链式栈

目录 前言 链式栈 操作方式 1.存储结构 2.初始化 3.创建节点 4.判断是否满栈 5.判断是否空栈 6.入栈 7.出栈 8.获取栈顶元素 9.遍历栈 10.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法,(链接:线性表-----栈(栈…

【初阶数据结构】——堆的引入和实现二叉树

目录 前言 一、二叉树的顺序结构及实现 1.1二叉树的顺序结构 1.2堆的结构 二、堆的实现 2.1堆向上调整算法(堆的插入) 2.2堆向下调整算法(堆的删除) 2.3建堆的时间复杂度 2.4堆的创建 2.5堆的初始化和空间的销毁 2.6堆…

【数据结构】图的基本概念,图的存储结构(邻接矩阵;邻接表;十字链表;邻接多重表)

欢~迎~光~临~^_^ 目录 1、图的基本概念 2、图的存储结构 2.1邻接矩阵 2.2邻接表 2.3十字链表 2.4邻接多重表 2.5图的四种存储结构的对比 1、图的基本概念 图是由一组节点(通常称为顶点)和一组连接这些节点的边(通常称为边&#xff0…

注册中心的学习

一、什么是注册中心? 注册中心主要有三种角色: 1.1、服务提供者(RPC Server): 在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态。 1.2、服务消费者(…

Qt5开发及实例V2.0-第七章-Qt图形视图框架

Qt5开发及实例V2.0-第七章-Qt图形视图框架 第7章 Qt 5图形视图框架7.1 图形视图体系结构7.1.1 Graphics View的特点7.1.2 Graphics View的三元素7.1.3 GraphicsView的坐标系统 7.2 【实例】:图形视图7.2.1 飞舞的蝴蝶7.2.2 地图浏览器7.2.3 图元创建7.2.4 图元的旋转…