一、直方图
首先看一个例子:
上面是原始图像,下面是图像的直方图。
什么意思呢?
举例:
最后绘制的直方图如下:
不过,大家一般看到的是这种:
再比如,左边这三张图,得到的对应的直方图如右所示:
二、归一化直方图
举例:
三、绘制直方图的参数
3.1 dims
dims表示使用参数的数量。dims = 1表示绘制直方图的时候,只考虑灰度级的情况。dims一般就等于1。
3.2 bins
参数子集的数目
有时候需要把邻近的像素值合并一下。比如下面的图,应该有5个像素值。但是想合并成3个,那就bins = 3。
再比如,lena图像想分成16个组
最后得到的灰度直方图如下:
3.3 Range
统计直方图的范围。
function varargout = FR_Processed_histogram(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @FR_Processed_histogram_OpeningFcn, ... 'gui_OutputFcn', @FR_Processed_histogram_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 function FR_Processed_histogram_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global total_sub train_img sub_img max_hist_level bin_num form_bin_num; total_sub = 40; train_img = 200; sub_img = 10; max_hist_level = 256; bin_num = 9; form_bin_num = 29; function varargout = FR_Processed_histogram_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
完整代码咨询QQ1575304183