colormap(gray)(colormapgray)
matlab图像处理
clear; % 清除变量
close all; %关闭matlab窗口(显示图片的窗口等)
[A, M] = imread('SOUEAST300.bmp', 'bmp'); %读入图片
[L C O]=size(A); % 获取图片的长 宽 和通道数
figure,image(A);title('A'); %显示图片
B = A(:,:,1)/3 + A(:,:,2)/3 + A(:,:,3)/3; % 将图片转化为灰度图像
figure, imagesc(B); title('B'); colormap(gray); %显示灰度图片
figure, imhist(B); % 显示直方图
[counts,x] = imhist(B); % 获得属于各个bin 的统计像素个数
N = length(x); % bin的个数
y_left_peak = max(counts(1:floor(N/2))) %获得直方图左半部分的最大值
y_right_peak = max(counts(ceil(N/2):N)) %获得直方图右半部分的最大值
x_left_peak = find(counts==y_left_peak); % 最大值对应的bin
x_left_peak = x_left_peak(1)
x_right_peak = find(counts==y_right_peak); % 最大值对应的bin
x_right_peak = x_right_peak(length(x_right_peak))
y_middle_valley = min(counts(x_left_peak:x_right_peak)); % 找到两个bin之间 直方图的最小值
% 最小值对应的bin
x_middle_valley = find(counts(x_left_peak:x_right_peak) == y_middle_valley);
x_middle_valley = x_middle_valley(1) + x_left_peak-1 % 计算出阈值
C = B;
% 生成二值图像(黑白)
C(find(B= x_middle_valley)) = 1;
C(find(B x_middle_valley)) = 0;
figure, imagesc(C); colormap(gray)
% SE_imdilate = strel('square',3)
% C_imdilate = imdilate(C, SE_imdilate);
% figure, imagesc(C_imdilate); colormap(gray)
%
% SE_imerode = strel('square',3)
% C_imerode = imerode(C, SE_imerode);
% figure, imagesc(C_imerode); colormap(gray)
D = C(40:300,40:550);
figure, imagesc(D); colormap(gray)
% D = imresize(C, [1024,512]);
% figure, imagesc(D), colormap(gray)
% D = imrotate(C,5);
% figure, imagesc(D), colormap(gray)
% C_fft2 = fft2(C);
% C_fft2_abs = abs(C_fft2);
% C_fft2_abs = 255/max(max(C_fft2_abs))*C_fft2_abs;
% figure, imagesc(C_fft2_abs);
BW = bwmorph(C,'skel', Inf); %形态学操作,去除目标边缘的一些像素
figure, imshow(BW); %显示二值图像
如何用matlab画lp11模二维场强分布图
clc
clear
close all
V=5;
U=3.1527;
W=3.8808;
Npoint=501;
Rx=2;
Ry=2;
%网格设定及计算
x=linspace(-Rx,Rx,Npoint);
y=linspace(-Ry,Ry,Npoint);
X=meshgrid(x,y);
Y=meshgrid(y,x);
Y=Y';
R=sqrt(X.^2+Y.^2);
Theta = atan(Y./(X+eps));
% 光纤中光芯光场分布
E1 = besselj(1,U*R).*cos(Theta);
% 光纤中包层的光场分布
pos = find(R=1);
E2 = besselj(1,U).*besselk(1,W.*R).*cos(Theta)/besselk(1,W);
E=E1;
E(pos)=E2(pos);
E=E/max(max(E1));
I=E.^2;
%电场分量的二维强度作图
figure
imagesc(x,y,E)
colormap(gray),colorbar
xlabel('x'),ylabel('y'),title('E')
%光强的二维强度图
figure
imagesc(x,y,I)
colormap(gray),colorbar
xlabel('x'),ylabel('y'),title('I')
%电场分量的等高线图
figure
contour(x,y,E),colorbar
axis equal
xlabel('x'),ylabel('y'),title('E')
%电场分量的等高线结合梯度矢量图
figure
[px,py]=gradient(E);
contour(X,Y,E),hold on
quiver(X,Y,px,py),hold off
axis equal

如何使用matlab去除彩色图像背景?
使用matlab去除彩色图像背景代码:
im=imread('7.jpg');
im=rgb2gray(im);
imm=double(im);
figure,imagesc(imm),colormap(gray)
hist(imm);figure(gcf);
im1=imm=180;
figure,imagesc(im1),colormap(gray);
im2=im1.*imm;
figure,imagesc(im2),colormap(gray)
MATLAB简介:
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrixlaboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平
MATLAB中colormap(gray)什么意思? dirac函数怎么用
展开全部
colormap
是一种颜色映射,1-gray是颜色列表,函数的调用形式为:colormap(map)
其中map是由m个三原色向量构成,相应的参数还有:
hot暖色
cool冷色
jet
hsv
spring
等等。
matlab 制图 伪彩色图 数值越大颜色越深
1、用pcolor函数画伪彩图;
2、gray产生的调色板是深色代表较小的数值,浅色代表较大的数值,所以按照你的要求,应该将其颠倒过来。
代码如下,供参考:
[x,y,z]=peaks;
pcolor(x,y,z)
colormap(flipud(gray))
colorbar
效果图:
用matlab画灰度图
不知道你要哪一种图,你这个函数生成三维图比较好,会有坐标显示变量名称的。如果生成灰度图将以点数为坐标,图中会没有变量名称的,因为灰度图像是没有x、y坐标变量名的,而且坐标原点也不在左下。
[c1,c2]=meshgrid(-4*pi:0.25:4*pi); %生成网格
I=cos(c1).^2+sin(2*c1).*sin(c2-c1);%计算I
figure(1)
mesh(c1,c2,I); %用mesh生成三维图
xlabel('\theta 1');ylabel('\theta 2');zlabel('\itI');
figure(2)
surf(c1,c2,I); %用surf生成三维图
%axis([0 4*pi 0 4*pi -2.5 1])
xlabel('\theta 1');ylabel('\theta 2');zlabel('\itI');
figure(3)
imagesc(I);%使用jet生成64阶灰度图
colormap(jet(64));colorbar;
figure(4)
imagesc(I);%使用gray生成64阶灰度图
colormap(gray(64));colorbar;
图像依次为:
如果硬要有坐标,可以把surf成的图用shading interp去除网格,用axis tight;铺满坐标轴,但得到的图会有漏色现象,那是matlab在作图方面本身不够强大的原因。(话说这图真像放鸡蛋的撑子,俺好多天没吃鸡蛋了,明天补个蛋先)