前言

由于做项目的时候需要对图片进行二值化,而且图片不同需要达到二值化的效果也不同,如果一直要在程序里试探阈值比较麻烦。所以想利用图像界面中的滑动条人工控制二值化阈值


一、主要步骤

1、 在matlab命令行输入guide,回车新建一个图形界面
2、在guide图像界面分别插入滑动条、坐标系、可编辑文本块、按钮。

3、在滑动条的属性检查器里根据需要调整最大值,最小值,默认值 (max、min、value)

4、在相应的.m文件里插入功能代码

二、代码

function varargout = ThresholdImpactGuide(varargin)
% THRESHOLDIMPACTGUIDE MATLAB code for ThresholdImpactGuide.fig
%      THRESHOLDIMPACTGUIDE, by itself, creates a new THRESHOLDIMPACTGUIDE or raises the existing
%      singleton*.
%
%      H = THRESHOLDIMPACTGUIDE returns the handle to a new THRESHOLDIMPACTGUIDE or the handle to
%      the existing singleton*.
%
%      THRESHOLDIMPACTGUIDE('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in THRESHOLDIMPACTGUIDE.M with the given input arguments.
%
%      THRESHOLDIMPACTGUIDE('Property','Value',...) creates a new THRESHOLDIMPACTGUIDE or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before ThresholdImpactGuide_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to ThresholdImpactGuide_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help ThresholdImpactGuide% Last Modified by GUIDE v2.5 09-Mar-2022 16:45:10% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...'gui_Singleton',  gui_Singleton, ...'gui_OpeningFcn', @ThresholdImpactGuide_OpeningFcn, ...'gui_OutputFcn',  @ThresholdImpactGuide_OutputFcn, ...'gui_LayoutFcn',  [] , ...'gui_Callback',   []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before ThresholdImpactGuide is made visible.
function ThresholdImpactGuide_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to ThresholdImpactGuide (see VARARGIN)% Choose default command line output for ThresholdImpactGuide
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes ThresholdImpactGuide wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = ThresholdImpactGuide_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider
global Img;
val=get(handles.slider1,'Value');
set(handles.edit1,'string',num2str(val));
Ig = im2double(Img);[m,n]=size(Ig);Ibr=imbinarize(Ig,val*graythresh(Ig));SE = strel('square',round(m/50)); %初步去噪,图片开运算(先腐蚀后膨胀),去除噪声If = imopen(Ibr,SE);imagesc(If,'Parent',handles.axes1);% --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor',[.9 .9 .9]);
endfunction edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
trydelete(allchild(handles.axes1));
end
axes(handles.axes1); %指定需要清空的坐标轴
cla reset;
%载入图像
global Img;
[FileName PathName Index]=uigetfile({'*.jpg';'*,png';'*.bmp'},...'File Selector');
if ~Indexelseif IndexImg = imread([PathName FileName]);imagesc(Img,'Parent',handles.axes1);Img=rgb2gray(Img);end
end
global Img;

三、效果

这样就能通过按钮在文件夹中添加图片,再通过滑动条控制它二值化的阈值,其中可编辑文本可以实时的显示阈值


注意:在显示二值化的过程中出现了色彩失真,好像是函数的原因,知道解决方法的可以底下评论!!

matlab利用滑动条控制图片二值化阈值相关推荐

  1. python图像灰度化_python实现图片二值化及灰度处理方式

    python实现图片二值化及灰度处理方式 我就废话不多说了,直接上代码吧! 集成环境:win10 pycharm #!/usr/bin/env python3.5.2 # -*- coding: ut ...

  2. 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)

    文章目录 一.之前工作回顾 二.图片处理过程 (1)图片的裁剪 (2)生成xml文件的相关代码 三.使用yolov4模型,训练预测蛾子数据集 四.项目步骤记录 五.数据标注范例 六.关于xml的创建. ...

  3. python灰度处理打印图片_python实现图片二值化及灰度处理方式

    我就废话不多说了,直接上代码吧! 集成环境:win10 pycharm #!/usr/bin/env python3.5.2 # -*- coding: utf-8 -*- '''4图片灰度调整及二值 ...

  4. 二值图像分析:OpenCV中的二值化阈值操作

    二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...

  5. 二值化阈值自动选取方法

    二值化阈值自动选取方法 1. 双峰法 双峰法的原理及其简单:它认为图像由前景和背景组成,在灰度直方图上,前后二景都形成高峰,在双峰之间的最低谷处就是图像的阈值所在.根据这一原理,我们给出了它的实现,部 ...

  6. 图像二值化阈值选取常用方法

    图像二值化阈值选取常用方法: 1. 双峰法. 2. P参数法. 3. 最大类间方差法(Otsu.大津法). 4. 最大熵阈值法. 5. 迭代法(最佳阈值法). 1. 双峰法. 1996年,Prewit ...

  7. 灰度图片二值化matlab

    rge图片灰度化之后,往往存在灰度值比较近的情况.根据自己的需求将灰度值调到两个极端值,也叫做阈值处理. 本文的阈值是自定义的,建立在已经读取到灰度图片灰度值的基础之上. 存在获取灰度图片最佳阈值的算 ...

  8. MATLAB中将pgm图片二值化

    读取 pgm文件 L=imread('XXX.pgm') 二值化 logicalMap=imbinarize(L) 等比例缩放 map = binaryOccupancyMap(logicalMap, ...

  9. 利用Python实现图像的二值化

    目录 1.全局阈值法 1.1主要函数: 1.2全局阈值的代码实现 1.3特点 2.自适应阈值法 2.1主要函数: 2.2实现代码: 2.3特点: 3.OTSU二值化(最大类间方差法) 3.1实现代码: ...

最新文章

  1. CSUOJ 1525 Algebraic Teamwork
  2. 面向过程方法学开发软件的特点
  3. Python3字符串的编码
  4. 算法提高 邮票面值设计 搜索 动态规划
  5. PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示
  6. android动态渐变button,Android--自定义Button的样式以及动态渐变效果
  7. idea导入java项目类上面显示红色的J符号解决办法
  8. 【转】75个最佳Web设计资源
  9. 左手用R右手Python系列之——表格数据抓取之道
  10. IAR的基本使用教程
  11. 2020抖音无人直播技术:最新不封号无人直播的操作方法详细介绍
  12. Linux之串口应用
  13. 编译项目时报出已经定义了构造器
  14. 【微信小程序开发】缓存Storage的存入与获取
  15. 开发过程中swagger-ui快速集成详解
  16. 中国「人造太阳」1.2亿摄氏度持续百秒,5倍时长打破可控核聚变世界纪录
  17. ISO 32000-2 国际标准7.7
  18. 互联网日报 | 7月13日 星期二 | 张近东辞任苏宁易购董事长;斗鱼虎牙宣布终止合并;联想集团二季度蝉联全球PC销量冠军...
  19. 在微信公众号中添加外部的链接图文教程
  20. 北工大计算机网络95分复习——【第四章 介质访问控制子层】

热门文章

  1. 3d Slicer-DICOM模块之Query/Retrieve功能介绍
  2. 云场景实践研究第71期:云集微店
  3. 单相电机正反转接线图_单相电机正反转接线图
  4. 利用非递归遍历统计二叉树的结点数
  5. 计算机家庭组有啥用,Windows 10家庭组如何使用?
  6. 计算机更改家庭组密码,Windows7中为家庭组设置密码后如何修改
  7. BlackBox:在不受信任的系统上保护容器安全
  8. 【第二篇】商城系统-工欲善其事必先利其器-环境准备
  9. Windows系统关机及快速关机原理
  10. 经济内循环时代,我们需要更多的“云网万店”新物种