MATLAB GUI设计 图像处理基本操作(二)

article/2025/8/19 2:41:15

一、直方图及直方图均衡化

直方图是从图像灰度图中提取的亮度信息,包含灰度级和像素数,对于uint8图像其灰度级为0~255(2^8=256),用imhist()函数显示。imhist()/numel可获得归一化直方图。书中显示直方图的函数还有bar()、stem()、plot(),这里不赘述。

直方图均衡化能够提高图像整体亮度,增强对比度,对原图灰度级做积分处理,使输出灰度级的概率密度函数为均匀:s=T(r)=\int_{0}^{r}Pr(w)dw,该过程可以用histeq()函数实现,以下是我自己写的直方图均衡化过程的代码。

global s;
axes(handles.axes2);
T=imread(s);
if ndims(T)==3T=rgb2gray(T);
end
[m,n]=size(T); 
GP=zeros(1,256);   %构造一个统计灰度出现频次的矩阵
for k=0:255 GP(k+1)=length(find(T==k))/(m*n);  %计算每级灰度出现的概率,将其存入GP
end
%直方图均衡化
S1=zeros(1,256); 
for i=1:256for j=1:i S1(i)=GP(j)+S1(i);end 
end 
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度 
for i=1:256 GPeq(i)=sum(GP(find(S2==i)));%计算现有每个灰度级出现的概率 
end 
I=T;
for i=0:255I(find(T==i)) = S2(i+1);
end
imshow(I);
guidata(hObject,handles);
setappdata(handles.axes2,'img2',I);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;

 二、图像加运算、减运算,与、或逻辑运算

进行这些运算要求两幅图像大小相同,若不同可以用imresize函数进行统一,例如frames=imresize(frames,[512,512]) 统一为512*512大小的图像。

 

%与、或逻辑运算
global s;
axes(handles.axes2);
[Filename,Pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif'},'pick an image','C:\');
if isequal(Filename,0)||isequal(Pathname,0)warndlg('please select a picture first!','warning');return;
elseSTR=[Pathname Filename];t=imread(STR);
end
c=imread(s);
t1=im2bw(t);
c1=im2bw(c);
k1=c1&t1;%%%%或,该句改为:k1=c1|t1;
imshow(t);
figure();
imshow(k1);title('and');
setappdata(handles.axes2,'img2',k1);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;%减运算
global s;
axes(handles.axes2);
[Filename,Pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif'},'pick an image','C:\');
if isequal(Filename,0)||isequal(Pathname,0)warndlg('please select a picture first!','warning');return;
elseSTR=[Pathname Filename];t=imread(STR);
end
k=imread(s);
j=imsubtract(k,t);
imshow(t);
figure();imshow(j);title('cut');
setappdata(handles.axes2,'img2',j);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;%加运算
global s;
axes(handles.axes2);
[Filename,Pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif'},'pick an image','C:\');
if isequal(Filename,0)||isequal(Pathname,0)warndlg('please select a picture first!','warning');return;
elseSTR=[Pathname Filename];t=imread(STR);
end
k=imread(s);
imshow((k+t)/2,[0 255]); %在空域内直接融合
figure();imshow(j);title('add');
setappdata(handles.axes2,'img2',j);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;

三、图像增强:对数变换、幂次变换

对数变换:s=clog(1+r),其中s为新图像素值,r为原图像素值,c为增强大小,我取为10.

global s;
axes(handles.axes2)
a=imread(s);
if ndims(a)==3a=rgb2gray(a);
end
v=10;
r=mat2gray(double(a));
b=log(1+v*r)/(log(v+1));
imshow(b);
setappdata(handles.axes2,'img2',b);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;

幂次变换:s=cr^{\gamma },图中可以看到高灰度段值有明显提升。

 对此代码我做了一个交互,即用户可以输入γ的值来决定变换程度。

global s;
axes(handles.axes2);
imggray=imread(s);
if ndims(imggray)==3imggray=rgb2gray(imggray);
end
gamma=inputdlg('please input gamma:');
if isempty(gamma)warndlg('please input gamma!','warning');return;
elsex=str2num(gamma{:});
end
I=imadjust(imggray,[0 1],[0 1],x);
imshow(I);
setappdata(handles.axes2,'img2',I);
global cell;
global pos;
imgpro=getappdata(handles.axes2,'img2');
pos=pos+1;
cell{pos}=imgpro;


http://chatgpt.dhexx.cn/article/5t8gdsPS.shtml

相关文章

ff

文章目录 1.变数与变量存档1.1变量类型转换1.1.1语法说明1.1.2单一字元1.1.3多元字元1.1.3.1说明1.1.3.2创建对象1.1.3.3逻辑运算和分配 1.2结构体1.2.1存储异构数据的方法1.2.2向结构添加信息2.2.2.1延伸拓展 1.3结构功能1.3.1功能基础语法1.3.2功能语法举例 1.4嵌套结构1.5元…

数字图像处理学习笔记 四 傅里叶变换和频率域滤波

目录 一 预备知识:傅里叶级数的介绍 1、一维傅里叶变换数学推导 2、图像傅里叶变换的物理意义 3、二维傅里叶变换 二、频率域滤波 1、频率域与空间域之间的关系 2、频率域滤波的基本步骤 3、使用频率域滤波平滑图像 4、使用频率域滤波锐化图像 5、选择率滤波…

第五章 DirectX 光照,材质和纹理(下)

在计算机三维世界中,想要模拟出真实的物体,让它的表面看起来更加逼真,就需要使用“纹理映射”技术,简单讲就是一种将2D图像映射到3D物体上面。一般来说,纹理是表示物体表面细节的一幅或多幅2D图像,也称为纹…

数组属性和基本操作

数组属性和基本操作 np.arange(start150,stop0,step-1) 将值倒过来 import numpy as np #matplotlib画图的,也可以读取图片 import matplotlib.pyplot as plt np.arange(150, 1, step-1) 输出 array([150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 1…

灰度增强和去噪

futurehello博客 http://blog.csdn.net/xixi_0921/article/details/50533487 整理笔记 一、前言 图像的灰度变换则不同,其对像素的计算仅仅依赖于当前像素和灰度变换函数。 灰度变换也被称为图像的点运算(只针对图像的某一像素点)是所有图…

Chapter_06 更改图像的对比度和亮度

文章目录 一. 本章目标① 目标② 理论③ 代码 二. 实例① 亮度和对比度调整② 伽马校正③ 纠正曝光不足的图像 三. 图形渲染中的伽马校正(附加资源) 一. 本章目标 ① 目标 本教程中我们将学习如何: 访问像素值用零初始化矩阵学习cv::saturate_cast是做什么的,以及它有什么用获…

MATLAB和Intislim,matlab灰阶变换函数imadjust和stretchlim的c++实现

灰阶变换 首先介绍一下灰阶变换,一幅图像数据本身在存储的数据结构上为一个二维的矩阵,即一幅图像为m*n个密密麻麻的像素点构成。 image.png 然后,这些像素点有着一个值,这个值成为灰度值或者亮度值,值的范围为[0,255]…

一个app开发周期是多久?快速开发才是主流

app的出现,极大的方便了人们的生活、社交和工作,各种各样的app为人们提供了各种便利的服务,真正让移动互联网服务大众。许多行业看到在app上爆发出的巨大潜能,都纷纷主动进行app制作来迎接移动互联网浪潮。 开发app一个很重的问题…

如何开发app软件?程序员揭秘你还没听过的1种方法

如何开发app软件?app软件开发需要多少钱?现在手机app这么火,很多企业都想开发一个app软件开拓市场。但是在开发app的时候往往会感觉力不从心,因为app开发门槛比较高,大家对app软件开发需要的技术、成本并不了解。 现…

商城APP软件开发要素有哪些

商城APP软件体系是当今电商行业经常会运用的商城体系,既支撑企业对企业的运营形式,也支撑卖家对消费者的运营形式,便是现在常见的B2C,B2B的电商形式APP,跟着现在的互联网的遍及现在这些电商都是成为了电商商家开展的不…

app软件怎么开发 盘点3种app制作方式

现在智能手机给大家的生活带来了很多便利,利用手机,随时随地看新闻、手机打车提前预定、网上订餐不用等、商家服务提前预约、学习内容随时看、购物更是随时买。各式各样的手机App,让生活方式方式了重大改变。 1、组建团队开发APP 自己有团队…

app应用软件开发流程是怎样的?

从入职这行业到创业已有 7 载,对 APP 产品开发的流程已经再熟悉不过了,现在把这几年积累的一些经验和大家分享一下,一个产品是怎么从想法一步一步落地为具体成品的,这个过程中会经历一些怎样的必要流程呢,下面大致说一…

三阶魔方傻瓜指南

三阶魔方20分钟完全自救指南——包学包会 前言 寒假宅在家里,闲来无事,偶得一个三阶魔方,便从网上找公式摸索。发现了很多版本,但是大多局部最优,缺少易于小白理解的全局最优方法。所以做次总结,集各家所…

C/C++FPS实战CSGO矩阵方框透视骨骼自瞄实战教程

C/CFPS实战CSGO矩阵方框透视骨骼自瞄实战教程

基于yolo5制作的csgo,ai自瞄

研究了几天,终于肝出来了,基本功能完美运行,晚点在训练一个专用模型。

警惕AI,我搭建了一个“枪枪爆头”的视觉AI自瞄程序,却引发了一场“山雨欲来”

前言 前段时间在网上看到《警惕AI外挂!我写了一个枪枪爆头的视觉AI,又亲手“杀死”了它》 这个视频,引起了我极大的兴趣。 视频中提到,在国外有人给使命召唤做了个AI程序来实现自动瞄准功能。它跟传统外挂不一样,该程…

理解FPS游戏中的矩阵方框透视自瞄

​ 初识矩阵 其实矩阵是线性代数里面的说法 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 [1] ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。 类似: 矩阵的乘法: …

手把手教你如何0基础编写基于AI机器视觉的--王者荣耀百里守约的自瞄程序,我家村头的傻X都能学会的教程!

先看看我在B站的效果视频 王者荣耀-百里守约-AI辅助自瞄研究 摘要:YoLo目标检测框架 PaddleDetection机器学习框架 不介绍上面的框架了,直入主题: 以下教程基于Windows10系统环境,Win7应该不太行。 考虑到大多数学生比较穷&a…

yolov5实现机器视觉ai自瞄,本人跑代码训练时总结下来的坑(参数设置,服务器使用,自动打标签,训练速度,显存使用率...)

想到啥些啥,都是些我遇到的,很坑,但偏偏又有点蠢的问题。 路过进来的朋友可以 ctrlF 搜一下有没有自己苦恼的问题。 1,训练的模型使用越小(最小是yolov5n),帧数越高,自瞄间隔越短。…

[原创]FPS网络游戏自动瞄准自瞄外挂漏洞分析以及实现

0x0. 前言 来到论坛已经有一段时间了,目前大三学生,乐于分享知识,看到论坛招聘讲师的帖子,于是想发点文字,分享知识,不知道能不能申请精华。 新年刚刚过去,不知道大家亲戚走没走完,新的一年里,祝大家财源广进,身体健康,万事如意,一切都会好起来的! 0x1. 了解FPS…