基于PCNN的图像增强matlab代码
2016-06-19 20:04
507 查看
function grayenhancement %名称:PCNN灰度图像增强 %功能:对图像进行增强处理,使之轮廓、纹理清楚,细节清晰 %% clc close all %% [filename,pathname]=uigetfile('*.*','选择要处理的图片'); I=im2double(imread(fullfile(pathname,filename))); figure,imshow(I); title('原始图像'); if size(I,3)==3 I=rgb2gray(I); end I=double(I); figure,imshow(I); title('灰度图像'); I=I/255;%转化为[0,1]之间处理 %% [p,q]=size(I); %初始化相关参数 alpha_L=0.06931; alpha_Theta=0.05; beta=0.2; vL=1.00; vTheta=200;%连接幅度因子 np=700000;%阈值幅度因子 %初始化所有用到的矩阵 EnhImage=zeros(p,q); L=zeros(p,q); U=zeros(p,q); Y=zeros(p,q); Y0=zeros(p,q); %突触联接权系数矩阵W W=[0.1091 0.1409 0.1091;... 0.1409 0 0.1409;... 0.1091 0.1409 0.1091]; %实现PCNN图像增强 Bri=max(I(:));%灰度图像中最亮的像素的灰度值 La=[-1 -1 -1;-1 8 -1;-1 -1 -1];%;拉普拉斯算子 Theta=Bri-conv2(I,La,'same'); F=I; for n=1:np K=conv2(Y,W,'same'); L=exp(-alpha_L)*L+vL*K; Theta=exp(-alpha_Theta)*Theta+vTheta*Y; U=F.*(1+beta*L); Y=im2double(U>Theta); EnhImage=(log(Bri)-(n-1)*alpha_Theta).*Y; Y0=Y0+EnhImage; if any(Y(:))==0 fprintf('第%d次迭代后没有火点了.\n',n); break; end end %格式转换 image=Data_Normalized(Y0,0); figure,imshow(image); title('增强图像') image1=Data_Normalized(Y0,1); figure,imshow(image1); title('反方式增强图像') imwrite(image,strcat(filename,'_grayenhance.bmp')); end function Y_Normalized=Data_Normalized(Y,method) %将Y的元素线性标准化到[0,1]之间 %可以有两种方式:1.min-0,max-1;2.min-1,max-0,因为Y的值一般都为负,不知其意义是值越大效果越大还是绝对值越大效果越大 %应该为第一种,但第二种效果也挺好看,因为HSI模型中I反映的是亮度,与颜色无关 if nargin==1 method=0; end Y_min=min(min(Y)); Y_max=max(max(Y)); if method==0 Y_Normalized=(Y-Y_min)/(Y_max-Y_min); else Y_Normalized=(Y-Y_max)/(Y_min-Y_max); end end
相关文章推荐
- 脉冲耦合神经网络(PCNN)的matlab实现 推荐
- 基于PCNN的图像分割的matlab实现 推荐
- PCNN去噪函数
- [EMNLP2015]Distant supervision for Relation Extraction via Piecewise Convolutional Neural Networks
- MATLAB 与Modelsim之间对测试系统的联合仿真
- 不同工具下的矩阵乘法速度测试
- ROS与Matlab协同进行运动控制
- matlab从入门到精通(一)安装软件及使用方法
- matlab颜色映射colormap() pcolor()
- Matlab编程笔记之GUI程序转exe
- Matlab从日文转换成英文或中文转换成英文
- Matlab实现手写数字识别(PCA+KNN)
- matlab中连接mysql数据库
- java中调用matlab的函数
- matlab透视变换
- 《機器學習實戰》學習筆記
- 【caffe-Windows】微软官方caffe之 matlab接口配置
- ESN(Echo State Network) Source Code
- libSVM安装-64位MATLAB
- Matlab 程序性能(计算速度)分析方法