MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian)

MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian)

clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;% 读取图像
image = imread('lena.png');
% 转换为灰度图像
gray_image = rgb2gray(image);
% 转换为double类型以进行计算
gray_image = double(gray_image);% 定义Sobel算子
sobel_x = [-1 0 1; -2 0 2; -1 0 1];
sobel_y = [1 2 1; 0 0 0; -1 -2 -1];% 计算图像大小
[height, width] = size(gray_image);
% 初始化输出图像
edge_image = zeros(height, width);% 对图像进行卷积以检测边缘
for i = 2:height-1for j = 2:width-1% 提取3x3邻域neighborhood = gray_image(i-1:i+1, j-1:j+1);% 计算x和y方向的梯度gradient_x = sum(sum(sobel_x .* neighborhood));gradient_y = sum(sum(sobel_y .* neighborhood));% 计算梯度幅度gradient_magnitude = sqrt(gradient_x^2 + gradient_y^2);% 设置阈值,将梯度幅度大于阈值的像素点视为边缘if gradient_magnitude > 20edge_image(i, j) = 1;endend
end% 显示结果
figure;
imshow(image);
title('原图');figure;
imshow(edge_image);
title('Sobel边缘检测');% 定义Prewitt算子
prewitt_x = [-1 0 1; -1 0 1; -1 0 1] / 3;
prewitt_y = [-1 -1 -1; 0 0 0; 1 1 1] / 3;% 使用MATLAB内置函数conv2进行卷积
gradient_x = conv2(gray_image, prewitt_x, 'same');
gradient_y = conv2(gray_image, prewitt_y, 'same');% 计算梯度幅度
gradient_magnitude = sqrt(gradient_x.^2 + gradient_y.^2);% 设置阈值并进行二值化处理,得到边缘图像
edge_image = gradient_magnitude > 0.1; % 阈值可根据实际情况调整% 显示原图像% 显示边缘检测后的图像
figure;
imshow(edge_image);
title('Prewitt边缘检测');% 定义Laplacian算子
laplacian_mask = [0 1 0; 1 -4 1; 0 1 0];% 使用MATLAB内置函数conv2进行卷积
laplacian_image = conv2(gray_image, laplacian_mask, 'same');% Laplacian算子会增强图像中的噪声,因此通常需要先对图像进行平滑处理
% 这里我们可以使用Gaussian滤波进行平滑
smoothed_image = imgaussfilt(gray_image, 2); % 第二个参数是高斯核的标准差
laplacian_image_smoothed = conv2(smoothed_image, laplacian_mask, 'same');% 为了可视化,将Laplacian处理后的图像进行零均值化处理
laplacian_image_smoothed = laplacian_image_smoothed - mean(laplacian_image_smoothed(:));% 显示Laplacian边缘检测后的图像
figure;
imshow(laplacian_image_smoothed); % []使得imshow自动调整显示范围
title('Laplacian边缘检测');

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读 AbstractMethod3.1. Overall Framework3.2. Temporal Adapter Module3.3. Semantic Knowledge Injection Module3.4. Novel Anomaly Synthesis Module3.5. Objective Functions3.5.1 Training stage without pseudo anomaly …

滚动条详解:跨平台iOS、Android、小程序滚动条隐藏及自定义样式综合指南

滚动条是用户界面中的图形化组件,用于指示和控制内容区域的可滚动范围。当元素内容超出其视窗边界时,滚动条提供可视化线索,并允许用户通过鼠标滚轮、触屏滑动或直接拖动滑块来浏览未显示部分,实现内容的上下或左右滚动。它在保持…

(四)Servlet教程——Maven的安装与配置

1.在C盘根目录下新建一个Java文件夹,该文件夹用来放置以下步骤下载的Maven; 2. 下载Maven的来源有清华大学开源软件镜像站和Apache Maven的官网,由于清华大学开源软件镜像站上只能下载3.8.8版本以上的Maven,我们选择在Apache Maven的官网上下…

OpenWrt里面运行docker安装windows xp

stdout: ❯ Starting Windows for Docker v2.20... stdout: ❯ For support visit https://github.com/dockur/windows stdout: ❯ CPU: Intel Xeon CPU E3 1230 V2 stdout: Intel Xeon CPU E3 1230 V2 | RAM: 7/7 GB | DISK: 416 GB (ext4) | HOST: 5.15.34... stdout: stdou…

UE4网络图片加载库(带内存缓存和磁盘缓存)

UE4网络图片加载库,带内存缓存和磁盘缓存,支持自定义缓存大小,支持蓝图和C++代码调用 1、调用示例 2、对外暴露函数 3、源代码-网络模块 KeImageNet.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreM…

zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录 一、前提二、告警配置1.邮件告警脚本配置2.短信告警脚本配置3.zabbix添加报警媒介4.zabbix创建动作4.给用户添加报警媒介 一、前提 已经搭建好zabbix-server 在需要监控的mysql服务器上安装zabbix-agent2 上述安装步骤参考我的上篇文章:通过docker容器安装za…

printjs打印表格的时候多页的时候第一页出现空白

现象:打印多页的时候第一页空白了,一页的时候没有问题 插件:printjs 网上搜索半天找到的方式解决: 1. 对于我这次的现象毫无作用。其他情况不得而知,未遇见过。(这个应该是大家用的比较多的方式&#xf…

检测水箱水位传感器有哪些?

生活中很多家电中都内含一个水箱,例如电蒸锅、饮水机、蒸汽熨斗、咖啡机等等,这些内部都有水箱,或大或小。当然水箱也有很多种类型,例如生活水箱、生产水箱、消防水箱等等。 把水储存在水箱中也会遇到这些问题,水箱没…

CSS学习(选择器、盒子模型)

1、CSS了解 CSS:层叠样式表,一种标记语言,用于给HTML结构设置样式。 样式:文字大小、背景颜色等 p标签内不能嵌套标题标签。 px是相对于分辨率而言的, em是相对于浏览器的默认字体, rem是相对于HTML根元…

nvm的下载与安装

nvm(Node Version Manager)是一个用于管理 Node.js 版本的工具,它允许您在同一台计算机上安装和切换不同的 Node.js 版本。 一、下载地址 https://github.com/coreybutler/nvm-windows/releases 二、安装nvm 三、设置环境变量 在命令提示…

一、Django 初识

简介 Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。 版本对应 不同版本的django框架是基于特定的不同的python版本开发的,所以不同版本的django框架要正常执行功能只能安装特定的python版本 Django安装 安装 Django # 全局安装 pip install dj…

频率分析和离散傅里叶变换——DSP学习笔记四

背景知识 四种基本的傅里叶变换 基本思想:将信号表示为不同频率 正弦分量的线性组合 正弦信号和复指数时间信号的有用特性 相同频率但不同相位的正弦信号的任何线性组合,都是有着相同频率但不同相位,且幅度可能受改变的正弦信号。 复指数时…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级,攻击数量显著增长。尤其是针对软件供应链的安全攻击,具有高隐秘性、追溯难的特点,对企业软件安全威胁极大。 同时,软件本身也在不断地更新迭代,软件内部成分安全性在持续变化浮动。…

【算法】人工蜂群算法,解决多目标车间调度问题,柔性车间调度问题

文章目录 复现论文什么是柔性作业车间调度问题?数据处理ABC算法编码解码种群初始化雇佣蜂操作IPOX交叉多点交叉 观察蜂操作侦察蜂操作算法流程 结果程序截图问询、帮助 复现论文 什么是柔性作业车间调度问题? 也叫多目标车间调度问题。 柔性作业车间调…

为什么有的晶圆厂叫特色工艺晶圆厂?

知识星球(星球名: 芯片制造与封测社区)里的学员问: 经常看看到某某晶圆厂是12英寸特色工艺晶圆厂,特色工艺是指什么? 芯片的种类? 芯片分为四大类:mems,IC,光电器件,分立器件。 …

web(微博发布案例)

示例&#xff1a; 1、检测空白内容 2、发布内容 html: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta …

科蓝尔环保 | 成都2024全国水科技大会暨技术装备成果展览会

2024年5月13日一15日中华环保联合会、福州大学、上海大学在四川省成都市联合举办“2024全国水科技大会暨技术装备成果展览会”。 大会主题&#xff1a;加快形成新质生产力 增强水业发展新动能 大会亮点&#xff1a;邀请6位院士&#xff0c;100余位行业专家&#xff0c;15场专…

Redis缓存问题:穿透,击穿,雪崩等

Redis缓存问题:穿透,击穿,雪崩等 在高并发场景下,数据库往往是最薄弱的环节,我们通常选择使用redis来进行缓存,以起到缓冲作用,来降低数据库的压力,但是一旦缓存出现问题,也会导致数据库瞬间压力过大甚至崩溃,从而导致整个系统崩溃.今天就聊聊常见的redis缓存问题. 缓存击穿 …

了解HTTP代理服务器:优势、分类及应用实践

在我们日常的网络使用中&#xff0c;我们经常听到HTTP代理服务器这个术语。那么&#xff0c;HTTP代理服务器到底是什么&#xff1f;它有什么优势和分类&#xff1f;又如何应用于实践中呢&#xff1f;让我们一起来了解一下。 HTTP代理服务器是一种位于客户端和服务器之间的中间…

qml和c++结合使用

目录 文章简介1. 创建qml工程2. 创建一个类和qml文件&#xff0c;修改main函数3. 函数说明&#xff1a;4. qml 文件间的调用5. 界面布局6. 代码举例 文章简介 初学qml用来记录qml的学习过程&#xff0c;方便后面归纳总结整理。 1. 创建qml工程 如下图&#xff0c;我使用的是…