matlab利用滑动条控制图片二值化阈值
前言
由于做项目的时候需要对图片进行二值化,而且图片不同需要达到二值化的效果也不同,如果一直要在程序里试探阈值比较麻烦。所以想利用图像界面中的滑动条人工控制二值化阈值
。
一、主要步骤
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利用滑动条控制图片二值化阈值相关推荐
- python图像灰度化_python实现图片二值化及灰度处理方式
python实现图片二值化及灰度处理方式 我就废话不多说了,直接上代码吧! 集成环境:win10 pycharm #!/usr/bin/env python3.5.2 # -*- coding: ut ...
- 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)
文章目录 一.之前工作回顾 二.图片处理过程 (1)图片的裁剪 (2)生成xml文件的相关代码 三.使用yolov4模型,训练预测蛾子数据集 四.项目步骤记录 五.数据标注范例 六.关于xml的创建. ...
- python灰度处理打印图片_python实现图片二值化及灰度处理方式
我就废话不多说了,直接上代码吧! 集成环境:win10 pycharm #!/usr/bin/env python3.5.2 # -*- coding: utf-8 -*- '''4图片灰度调整及二值 ...
- 二值图像分析:OpenCV中的二值化阈值操作
二值图像分析:OpenCV中的二值化阈值操作 1.二值图像的定义 2.OpenCV中的基本阈值操作 3.OTSU二值寻找算法 3.1 OTSU二值寻找算法介绍 3.2 OTSU二值寻找算法分析 3.2 ...
- 二值化阈值自动选取方法
二值化阈值自动选取方法 1. 双峰法 双峰法的原理及其简单:它认为图像由前景和背景组成,在灰度直方图上,前后二景都形成高峰,在双峰之间的最低谷处就是图像的阈值所在.根据这一原理,我们给出了它的实现,部 ...
- 图像二值化阈值选取常用方法
图像二值化阈值选取常用方法: 1. 双峰法. 2. P参数法. 3. 最大类间方差法(Otsu.大津法). 4. 最大熵阈值法. 5. 迭代法(最佳阈值法). 1. 双峰法. 1996年,Prewit ...
- 灰度图片二值化matlab
rge图片灰度化之后,往往存在灰度值比较近的情况.根据自己的需求将灰度值调到两个极端值,也叫做阈值处理. 本文的阈值是自定义的,建立在已经读取到灰度图片灰度值的基础之上. 存在获取灰度图片最佳阈值的算 ...
- MATLAB中将pgm图片二值化
读取 pgm文件 L=imread('XXX.pgm') 二值化 logicalMap=imbinarize(L) 等比例缩放 map = binaryOccupancyMap(logicalMap, ...
- 利用Python实现图像的二值化
目录 1.全局阈值法 1.1主要函数: 1.2全局阈值的代码实现 1.3特点 2.自适应阈值法 2.1主要函数: 2.2实现代码: 2.3特点: 3.OTSU二值化(最大类间方差法) 3.1实现代码: ...
最新文章
- CSUOJ 1525 Algebraic Teamwork
- 面向过程方法学开发软件的特点
- Python3字符串的编码
- 算法提高 邮票面值设计 搜索 动态规划
- PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示
- android动态渐变button,Android--自定义Button的样式以及动态渐变效果
- idea导入java项目类上面显示红色的J符号解决办法
- 【转】75个最佳Web设计资源
- 左手用R右手Python系列之——表格数据抓取之道
- IAR的基本使用教程
- 2020抖音无人直播技术:最新不封号无人直播的操作方法详细介绍
- Linux之串口应用
- 编译项目时报出已经定义了构造器
- 【微信小程序开发】缓存Storage的存入与获取
- 开发过程中swagger-ui快速集成详解
- 中国「人造太阳」1.2亿摄氏度持续百秒,5倍时长打破可控核聚变世界纪录
- ISO 32000-2 国际标准7.7
- 互联网日报 | 7月13日 星期二 | 张近东辞任苏宁易购董事长;斗鱼虎牙宣布终止合并;联想集团二季度蝉联全球PC销量冠军...
- 在微信公众号中添加外部的链接图文教程
- 北工大计算机网络95分复习——【第四章 介质访问控制子层】