数字图像处理实验——图像增强

news2024/11/28 21:43:03

一、实验目的与要求

1.掌握图像空域点处理增强方法,包括图像求反,线性灰度变换,以及直方图均衡化方法;

2.熟练掌握空域滤波增强方法,包括平滑滤波器及锐化滤波器。

二、实验内容及步骤

1.图像的求反、线性灰度变换、直方图均衡化:

(1)使用imread()函数读取一副图像,名为lena.bmp;

(2)实现图像求反运算(t=L−1−s);

clc;clear;close all; 
img1 = imread("lena.bmp");
img2 = imcomplement(img1);

subplot(1,2,1);imshow(img1);title('原始图像');
subplot(1,2,2);imshow(img2);title('求反图像');
  1. 线性灰度变换(小于30的灰度值不变,将30~150的灰度值拉伸到30~200,同时压缩150~255的灰度值到200与255之间);

clc;clear;close all; 
img1 = imread("lena.bmp");
[M,N]=size(img1);
figure;
subplot(1,2,1);imshow(img1);title('原始图像');
for i=1:M
    for j=1:N
        if img1(i,j)<30
            img1(i,j)=img1(i,j);
        elseif img1(i,j)<150
            img1(i,j)=(200-30)/(150-30)*(img1(i,j)-30)+30;
        else 
            img1(i,j)=(255-200)/(255-150)*(img1(i,j)-150)+200;
        end
    end
end
subplot(1,2,2);imshow(img1);title('线性灰度变换图像');
  1. 实现直方图均衡化(imhist( ) :显示图像直方图; histeq( ):实现对输入图像的直方图均衡化)

clc;clear;close all; 
img1 = imread("lena.bmp");
img2 = histeq(img1);
figure;
subplot(1,2,1);imshow(img1);title('原始图像');
subplot(1,2,2);imshow(img2);title('均衡化后图像');
figure;
subplot(1,2,1);imhist(img1);title('图像直方图');
subplot(1,2,2);imhist(img2);title('直方图均衡化');

2. 平滑滤波器:

(1)使用imread()函数读入图像lena.bmp;

(2)利用imnoise 命令在图像lena.bmp上添加椒盐噪声;

clc;clear;close all; 
img1 = imread("lena.bmp");
subplot(1,2,1),imshow(img1),title('原始图像');
img2=imnoise(img1,'salt & pepper',0.02);
subplot(1,2,2),imshow(img2),title('加入噪声密度:0.02的椒盐噪声');
  1. 进行3*3模板平滑滤波以及5*5模板平滑滤波;

clc;clear;close all; 
img1 = imread("lena.bmp");
img2=imnoise(img1,'salt & pepper',0.02);
img3=filter2(fspecial('average',3),img2)/255; 
img4=filter2(fspecial('average',5),img2)/255; 
subplot(1,3,1),imshow(img2),title('0.02的椒盐噪声图像');
subplot(1,3,2),imshow(img3),title('3*3模板平滑滤波');
subplot(1,3,3),imshow(img4),title('5*5模板平滑滤波');

3. 锐化滤波器:

(1)使用imread()函数读入图像lena.bmp;

(2)采用3×3的拉普拉斯算子w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1]滤波;

(3)联合使用figure, subplot(), imshow()函数显示原始图像以及锐化滤波的效果图。

clc;clear;close all; 
img1 = imread("lena.bmp");
F = im2double(img1);
[m,n]=size(F); 
G=zeros(m,n); 
w=[ 1, 1, 1; 1  -8 1; 1, 1, 1];
for x=1:m     
    for y=1:n         
        if (x==1||y==1||x==m||y==n)            
            G(x,y)=F(x,y);         
        else
            G(x,y)=w(1,1)*F(x-1,y-1)+w(1,2)*F(x-1,y)+w(1,3)*F(x-1,y+1)...                 
                +w(2,1)*F(x,y-1)+w(2,2)*F(x,y)+w(2,3)*F(x,y+1)...                 
                +w(3,1)*F(x+1,y+1)+w(3,2)*F(x+1,y)+w(3,3)*F(x+1,y+1);                     
        end
    end
end
F=im2uint8(F);
G=im2uint8(G);
figure 
subplot(121) 
imshow(F) 
title('原始图像'); 
subplot(122) 
imshow(G); 
title('拉普拉斯算子处理后的图像');

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

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

相关文章

【回答问题】ChatGPT上线了!比较流行的监督学习模型

监督学习模型是指在训练过程中&#xff0c;使用带有正确答案的标记数据来进行学习。常见的监督学习模型包括逻辑回归、决策树、支持向量机、朴素贝叶斯分类器、神经网络等。最近流行的监督学习模型还包括深度学习模型&#xff0c;如卷积神经网络和循环神经网络。 下面给出一些…

超级浏览器能帮来赞达(Lazada)老板什么忙?

近几年东南亚市场因人口红利及互联网的高度普及倍受关注&#xff0c;东南亚市场成了跨境市场的香饽饽&#xff0c;像来赞达&#xff08;Lazada&#xff09;、虾皮&#xff08;shopee&#xff09;等平台都是最近东南亚地区比较受欢迎的在线购物网站。根据第三方发布的调查报告显…

QGroundControl中使用QT语言家功能

QT语言家支持多种语言功能&#xff0c;在QGC中也很好的使用了该功能&#xff0c;下面对该功能是一些理解进行整理。首先在QGC使用语言家功能中分为qml文件和.c文件&#xff0c;两种略有不同。在.c文件中使用tr()将需要翻译的内容进行包裹在qml文件中使用qsTr()进行包裹下面以新…

【手把手一起学习】(一) Altium Designer 20 软件安装

Altium Designer 20 软件安装 1、解压安装压缩包 2、打开Setup文件夹 3、选中AltiumDesigner20Setup&#xff0c;选择“以管理员身份运行” 4、直接点击Next 5、选择“Chinese”&#xff0c;点击Next 6、直接点击Next 7、选择安装路径 8、直接点击Next 9、继续Next 10、软件安…

软件设计师通关攻略

软件设计师考什么&#xff1f;一、基础知识1.计算机科学基础知识2.计算机系统知识3.系统开发和运行知识4.面向对象基础知识5.信息安全知识6.标准化、信息化和知识产权基础知识7.计算机专业英语二、应用技术1.外部设计2.内部设计3.数据库应用分析与设计4.程序设计5.系统实施6.软…

【内网基于docker部署flink1.13.6 CDC、zeppelin0.10.0、flink-sql-cookbook-on-zeppelin】

内网基于docker部署flink1.13.6 CDC、zeppelin0.10.1、flink-sql-cookbook-on-zeppelin1、基础环境2、部署步骤2.1 docker安装2.2 拷贝docker镜像至内网2.2.1 外网机器下载所有需要镜像2.2.2 外网机器镜像检查2.2.3 外网机器镜像打包2.2.4 拷贝至内网2.2.5 内网加载镜像2.3 下载…

(剖面图全网唯一教程)如何利用EDEM制作剖面图 (自己琢磨出)

EDEM制作剖面图是一件非常重要的工作,本篇文章的方法是自己琢磨出来的,不一定完全精准,但是有效果,剖面图是可以制作出来的。方法在文末。

如何在图片上添加贴图?试试这几种方法

你平时在拍照的时候&#xff0c;有没有遇到过这样的情况&#xff1a;当你拍照后&#xff0c;发现背景不是很符合你的心意出现了一些你不想分享的物品&#xff0c;这个时候你会怎么办呢&#xff1f;一般情况下&#xff0c;有的小伙伴会选择使用马赛克来遮住这些物品&#xff0c;…

js如何引用同级元素

具体效果示例效果,可点击文末左下角阅读原文https://coder.itclan.cn/fontend/js/17-yinyong-tongji-elem/具体描述在网页中,同级(兄弟)元素,指的是拥有相同的直接父级元素的元素,并且往往指的是同类的元素,同类元素在实际开发中遇到的比较多比如:列表li,并列的按钮等,当需要做…

SpringBoot集成xxl-job分布式定时任务

一、xxl-job定时任务搭建下面这篇文章介绍了xxl-job平台搭建过程https://blog.csdn.net/xrq1995/article/details/126282290二、spring boot项目搭建1.创建项目2.pom文件引入<!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><arti…

【文档】利用readthedoc来写一个在线文档

使用readthedoc快速创建在线文档 分为两步走 本地创建文档部署到网络 本地创建文档 先安装sphinx pip install sphinx然后在你的文件夹内 sphinx-quickstart一系列默认回车即可 最后编译 make html会产生_build文件夹之类的。 用浏览器打开_build/html/index.html 以…

详细流程——安装并启动Jupyter notebook

安装并启动使用Jupyter notebook一、安装*step1:*切换路径*step2:*下载*step3:*启动Juypter Notebook*step4:*配置Jupyter Notebook*step5(可不配置):* 添加代码自动补全功能二、启动三、初步使用一、安装 注意&#xff1a;我是没有安装Anaconda&#xff0c;中途觉得需要Jupyt…

LeetCode:16. 最接近的三数之和

16. 最接近的三数之和1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组…

全网最全ssh:远程连接服务器学习,教你十分钟学会

远程连接服务器简介 SSH是如何工作的&#xff1f; 认证阶段 ssh修改配置文件 配置文件注释 练习 试验1 实验2 测试 远程连接服务器简介 1、什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统&#xff0c;让你在远程终端前登录linux主机以取得可…

JSP学习笔记一

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

shell第七天作业——awk(上)

题目 1、获取根分区剩余大小 2、获取当前机器ip地址 3、统计出apache的/var/log/httpd/access_log文件中访问量最多的前3个IP 4、打印/etc/passwd中UID大于500的用户名和uid 5、/etc/passwd 中匹配包含root或sys或tcp的任意行 6、请打印出/etc/passwd 第一个域&#xff0…

STM32MP157驱动开发——Regmap API

STM32MP157驱动开发——Regmap API0.前言一、Regmap API 简介1.Regmap 驱动框架2.regmap 结构体3.regmap_config 结构体4.Regmap 操作函数①Regmap 申请与初始化②Regmap释放③regmap 设备访问 API 函数5. regmap_config 掩码设置二、驱动开发1.修改设备结构体&#xff0c;添加…

RxJava VS kotlin flow

1.基础概念介绍 1.1 观察者模式 观察者模式&#xff0c;其实对于Android开发者而言&#xff0c;并不陌生&#xff0c;button的setOnClickListener&#xff0c;就是一个典型的观察者模式。控件button是被观察者&#xff0c;它产生一个事件(点击)&#xff0c;观察者OnClickList…

量化策略——准备2 量化技能树量化术语

文章目录量化技能树量化/金融术语1. 俗语2. 持仓术语3. 资金术语4. 策略术语5. 股票软件界面实用术语量化必然用到的核心价格数据其他数据/指标含义6. 委托单术语量化技能树 首先&#xff0c;量化金融&#xff08;Quantitative Finance&#xff0c;简称“量化”&#xff0c;Qu…

《小猫猫大课堂》三轮1——深度解析数据在内存中的存储

宝子&#xff0c;你不点个赞吗&#xff1f;不评个论吗&#xff1f;不收个藏吗&#xff1f; 最后的最后&#xff0c;关注我&#xff0c;关注我&#xff0c;关注我&#xff0c;你会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的很重…