首页 > 行业资讯 > 【细胞分割】基分水岭算法实现细胞分割计数matlab源码含 GUI

【细胞分割】基分水岭算法实现细胞分割计数matlab源码含 GUI

时间:2023-02-11 来源: 浏览:

【细胞分割】基分水岭算法实现细胞分割计数matlab源码含 GUI

原创 天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #图像处理matlab源码 954个

一、简介

分水岭算法是一种图像区域分割法,分割的过程中将图片转化为灰度图,然后我会将灰度值看作是海拔,然后向较低点注水,这种基于地形学的解释,我们着重考虑三种点: 极小值点,该点对应一个盆地的最低点,当我们在盆地里滴一滴水的时候,由于重力作用,水最终会汇聚到该点。注意:可能存在一个最小值面,该平面内的都是极小值点。 盆地的其它位置点,该位置滴的水滴会汇聚到局部最小点。 盆地的边缘点,是该盆地和其它盆地交接点,在该点滴一滴水,会等概率的流向任何一个盆地。 明白上述三种点之后,我们开始往盆地的极小值点注水,然后随着注水的深入,每一个极小值点慢慢的向外扩展,然后知道两个盆地的水汇合,汇合处就是我们需要的分水岭。

从下图可以直观理解一下,首先这三块区域都含有极小值点 然后逐渐填充就能获得分水岭(即分界线) 得到分界线就能完成图像分割:

二、源代码

function varargout = CellCount ( varargin ) % CELLCOUNT M-file for CellCount.fig %     CELLCOUNT, by itself, creates a new CELLCOUNT or raises the existing %     singleton*. % %     H = CELLCOUNT returns the handl e to a new CELLCOUNT or the handle to %     the existing singleton*. % %     CELLCOUNT(’CALLBACK’,hObject,eventData,handles,...) calls the local %     function named CALLBACK in CELLCOUNT.M with the given input arguments. % %     CELLCOUNT(’Property’,’Value’,...) creates a new CELLCOUNT or raises the %     existing singleton*. Starting from the left, property value pairs are %     applied to the GUI before CellCount_OpeningFcn gets called. An %     unrecognized property name or invalid value makes property application %     stop. All inputs are passed to CellCount_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 CellCount % Last Modified by GUIDE v2.5 01-May-2015 19:43:57 % Begin initialization code - DO NOT EDIT gui_Singleton = 1 ; gui_State = struct ( ’gui_Name’ ,       mfilename , ...                   ’gui_Singleton’ ,   gui_Singleton , ...                   ’gui_OpeningFcn’ , @ CellCount_OpeningFcn , ...                   ’gui_OutputFcn’ ,   @ CellCount_OutputFcn , ...                   ’gui_LayoutFcn’ , [] , ...                   ’gui_Callback’ ,   []); if nargin && ischar ( varargin { 1 })     gui_State . gui_Callback = str2func ( varargin { 1 }); end if nargout   [ varargout { 1 : nargout }] = gui_mainfcn ( gui_State , varargin {:}); else     gui_mainfcn ( gui_State , varargin {:}); end % End initialization code - DO NOT EDIT % --- Executes just before CellCount is made visible. function CellCount_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 CellCount (see VARARGIN) % Choose default command line output for CellCount handles . output = hObject ; % Update handles structure guidata ( hObject , handles ); % UIWAIT makes CellCount wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = CellCount_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 ; function 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 function edit3_Callback ( hObject , eventdata , handles ) % hObject   handle to edit3 (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 edit3 as text %       str2double(get(hObject,’String’)) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn ( hObject , eventdata , handles ) % hObject   handle to edit3 (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 function edit4_Callback ( hObject , eventdata , handles ) % hObject   handle to edit4 (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 edit4 as text %       str2double(get(hObject,’String’)) returns contents of edit4 as a double % --- Executes during object creation, after setting all properties. function edit4_CreateFcn ( hObject , eventdata , handles ) % hObject   handle to edit4 (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 function edit5_Callback ( hObject , eventdata , handles ) % hObject   handle to edit5 (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 edit5 as text %       str2double(get(hObject,’String’)) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit5_CreateFcn ( hObject , eventdata , handles ) % hObject   handle to edit5 (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 function edit6_Callback ( hObject , eventdata , handles ) % hObject   handle to edit6 (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 edit6 as text %       str2double(get(hObject,’String’)) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. function edit6_CreateFcn ( hObject , eventdata , handles ) % hObject   handle to edit6 (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) % --- Executes on button press in pushbutton3. function pushbutton3_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton5. function pushbutton5_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6. function pushbutton6_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton7. function pushbutton7_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function file_Callback ( hObject , eventdata , handles ) % hObject   handle to file (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function open_Callback ( hObject , eventdata , handles ) % hObject   handle to open (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) global im ; [ filename , pathname ]= uigetfile ({ ’*.jpg’ ; ’*bmp’ ; ’*.gif’ }, ’选择图片’ ); %合成图片路径+文件名 str =[ pathname filename ]; %读取图片 im = imread ( str ); %使用第一个axes axes ( handles . axes0 ); imshow ( im ); % -------------------------------------------------------------------- function save_Callback ( hObject , eventdata , handles ) % hObject   handle to save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton8. function pushbutton8_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) close ( gcf ) %关闭当前figure句柄 % --- Executes on button press in pushbutton9. function pushbutton9_Callback ( hObject , eventdata , handles ) % hObject   handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles   structure with handles and user data (see GUIDATA) global im global I global C %%%%%%%%%%%%%%%%%% I = im ; R = I (:,:, 1 ); G = I (:,:, 2 ); B = I (:,:, 3 ); K = rgb2hsv ( I );           H = K (:,:, 1 ); S = K (:,:, 2 ); V = K (:,:, 3 ); [ cenwhite , copywhite ]= Kmeans ( H , 3 );           cenwhite ;                       A = copywhite ; [ m , n ]= size ( A );           for i = 1 : m     for j = 1 : n         if A ( i , j ) == cenwhite ( 2 )           A ( i , j )= 1 ;         else A ( i , j )= 0 ;         end     end

三、运行结果

四、参考文献

[1]方红萍, 方康玲, 刘新海. 自适应H-minima的改进分水岭堆叠细胞分割方法[J]. 计算机应用研究, 2016(5):1587-1590.

五、代码下载

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐