MATLAB彩色图片的处理
语法
A = imread(filename)
A = imread(filename,fmt)
A = imread(___,idx)
A = imread(___,Name,Value)
[A,map] = imread(___)
[A,map,transparency] = imread(___)
说明
示例
A = imread(filename)
从 filename
指定的文件读取图像,并从文件内容推断出其格式。如果 filename
为多图像文件,则 imread
读取该文件中的第一个图像。
A = imread(filename,fmt)
另外还指定具有 fmt
指示的标准文件扩展名的文件的格式。如果 imread
找不到具有 filename
指定的名称的文件,则会查找名为 filename.fmt
的文件。
A = imread(___,idx)
从多图像文件读取指定的图像。此语法仅适用于 GIF、PGM、PBM、PPM、CUR、ICO、TIF、SVS 和 HDF4 文件。您必须指定 filename 输入,也可以指定 fmt。
示例
A = imread(___,Name,Value)
使用一个或多个名称-值对组参数以及先前语法中的任何输入参数来指定格式特定的选项。
示例
[A,map] = imread(___)
将 filename
中的索引图像读入 A
,并将其关联的颜色图读入 map
。图像文件中的颜色图值会自动重新调整到范围 [0,1]
中。
示例
[A,map,transparency] = imread(___)
另外还返回图像透明度。此语法仅适用于 PNG、CUR 和 ICO 文件。对于 PNG 文件,如果存在 alpha 通道,transparency
会返回该 alpha 通道。对于 CUR 和 ICO 文件,它为 AND(不透明度)掩码。
语法
s = svd(A)
[U,S,V] = svd(A)
[U,S,V] = svd(A,'econ')
[U,S,V] = svd(A,0)
说明
示例
s = svd(A)
以降序顺序返回矩阵 A
的奇异值。
示例
[U,S,V] = svd(A)
执行矩阵 A
的奇异值分解,因此 A = U*S*V'
。
示例
[U,S,V] = svd(A,'econ')
为 m
×n
矩阵 A
生成精简分解:
m > n
- 只计算U
的前n
列,S
是一个n
×n
矩阵。m = n
-svd(A,'econ')
等效于svd(A)
。m < n
- 只计算V
的前m
列,S
是一个m
×m
矩阵。
精简分解从奇异值的对角矩阵 S
中删除额外的零值行或列,以及 U
或 V
中与表达式 A = U*S*V'
中的那些零值相乘的列。删除这些零值和列可以缩短执行时间,并减少存储要求,而且不会影响分解的准确性。
示例
[U,S,V] = svd(A,0)
为 m
×n
矩阵 A
生成另一种精简分解:
m > n
-svd(A,0)
等效于svd(A,'econ')
。m <= n
-svd(A,0)
等效于svd(A)
。
语法
imshow(I)
imshow(I,[low high])
imshow(I,[])
imshow(RGB)
imshow(BW)
imshow(X,map)
imshow(filename)
imshow(___,Name,Value)
himage = imshow(___)
imshow(I,RI)
imshow(X,RX,map)
说明
示例
imshow(I)
在图窗中显示灰度图像 I
。imshow
使用图像数据类型的默认显示范围,并优化图窗、坐标区和图像对象属性以便显示图像。
imshow(I,[low high])
显示灰度图像 I
,以二元素向量 [low high]
形式指定显示范围。有关详细信息,请参阅 DisplayRange 参数。
示例
imshow(I,[])
显示灰度图像 I
,根据 I
中的像素值范围缩放灰度显示。imshow
使用 [min(I(:)) max(I(:))]
作为显示范围。imshow
将 I
中的最小值显示为黑色,将最大值显示为白色。有关详细信息,请参阅 DisplayRange 参数。
示例
imshow(RGB)
在图窗中显示真彩色图像 RGB
。
示例
imshow(BW)
在图窗中显示二值图像 BW
。对于二值图像,imshow
将值为 0
(零)的像素显示为黑色,将值为 1
的像素显示为白色。
示例
imshow(X,map)
显示具有颜色图 map
的索引图像 X
。颜色图矩阵可以具有任意行数,但它必须恰好包含 3 列。每行被解释为一种颜色,其中第一个元素指定红色的强度,第二个元素指定绿色的强度,第三个元素指定蓝色的强度。颜色强度可以在 [0, 1] 区间中指定。
示例
imshow(filename)
显示存储在由 filename
指定的图形文件中的图像。
imshow(___,Name,Value)
使用名称-值对组控制运算的各个方面来显示图像。
himage = imshow(___)
返回 imshow
创建的图像对象。
imshow(I,RI)
显示图像 I
以及相关联的二维空间参照对象 RI
。
imshow(X,RX,map)
显示索引图像 X
以及相关联的二维空间参照对象 RX
和颜色图 map
。
clc
clear all
close all
% logo = imread('XMU_logo.png');
logo = imread('birds.jpg');
logo = double(logo(:,:,2));
% ibad = find(logo(:) < 150);
% logo(ibad) = 1;
% imshow(logo);
imshow(mat2gray(logo))%矩阵转换为灰度图像
[nx,ny] = size(logo);
rk = rank(logo);
[U,S,V] = svd(logo);%奇异值分解
k = 50;
% re = U*S*V';
re = U(:,1:k)*S(1:k,1:k)*V(:,1:k)';
figure(2)
imshow(mat2gray(re));
clc;
close all;
clear;
[data,txt]=xlsread('scores');
[nx,ny]=size(data);
ave=mean(data);
demean=data-repmat(ave,[nx,1]); % 中心化 每一列data减去均值 repmat 把ave复制称为nx行一列的向量
R=corrcoef(data);
[V,Lambda]=eig(R);%提取特征值和特征向量
[lambda,ilambda]=sort(diag(Lambda),'descend');%排列 diag可认为是提取对角元素
Lambda=diag(lambda);%按lambda生成对角矩阵
%二、v=diag(X,k)
%X为矩阵,v为向量
%取矩阵X的第K条对角线元素为向量v
% %aa =
% -1.3282 -1.7925 0.4092
% -0.3803 0.5858 -0.4684
% -0.9560 0.7356 0.8292
% >> diag(aa)
% ans =
% -1.3282
% 0.5858
% 0.8292
V=V(:,ilambda); %把V按照pca后从大到小贡献的排列
PoV=diag(Lambda)/trace(Lambda);%trace 求对角线值的和
[PoV,cumsum(PoV)]% cumsum 累积和 (类似可以画成累积曲线的那张图的数据处理)
pc1=V(:,1);
pc2=V(:,2);
pc3=V(:,3);
pc1=-pc1;
figure(1);
% yline(0,'r-');
hold on;
h1=plot(pc1,'ro-','linewidth',1.5,'markersize',3);
hold on
h2=plot(pc2,'k*-','linewidth',1.5,'markersize',3);
hold on
h3=plot(pc3,'b^:','linewidth',1.5,'markersize',3);
hold off;
legend([h1,h2,h3],{'pc1','pc2','pc3'});
set(gca,'xtick',[1:13],'xticklabel',{'Chinese','Math','English','Physi.','Chem','Bio.','Politics','History','Geography','Music','Physical','Arts','Tech'});
header=txt(1,:);
kind=txt(2:end,end);
grid on;
clc;
clear;
close all;
%logo=imread('XMU_logo.png');
logo=imread('birds.jpg');
logo=double(logo(:,:,2));
imshow(logo);
imshow(mat2gray(logo));
[nx,ny]=size(logo);
rk=rank(logo);
[U,S,V]=svd(logo);%奇异值分解
k=768;
re=U(:,1:k)*S(1:k,1:k)*V(:,1:k)';
re_2=U*S*V';
figure(2);
%imshow(mat2gray(re));
imshow(mat2gray(re_2));
figure(3)
imshow(mat2gray(re));
% A=[4,8,2;2,7,3;0,6,4];
% rank(A)=2 一定小于等于A的行或列数的最小值
[data,txt] = xlsread('scores');
[nx,ny] = size(data);
ave = mean(data);
demean = data - repmat(ave,[nx,1]);
% raw data using corrcoef ;
R = corrcoef(data);
[V, Lambda] = eigsort(R);
keyboard
PoV = diag(Lambda)/trace(Lambda);
[PoV, cumsum(PoV)]
pc1 = V(:,1);
pc2 = V(:,2);
pc3 = V(:,3);
figure(1)
yline(0,'r-')
hold on
h1 = plot(pc1,'ro-','linewidth',1.5,'MarkerSize',3);
hold on
h2 = plot(pc2,'k*-.','linewidth',1.5,'MarkerSize',3);
hold on
h3 = plot(pc3,'b^:','linewidth',1.5,'MarkerSize',3);
hold off
legend([h1,h2,h3],{'pc1','pc2','pc3'})
xticks([1:13])
header = txt(1,:);
kind = txt(2:end,end);
xticklabels({'Chinese','Math','English','Physi.','Chem.','Bio.',...
'Politics','History','Geography','Music','Physical','Arts','Tech'})
figure(2)
scores = demean*V;
score1 = scores(:,1);
score2 = scores(:,2);
score3 = scores(:,3);
labels = kind;
scatter3(score1,score2,score3,'ro')
text(score1,score2,score3,labels)
xlabel('PC1')
ylabel('PC2')
zlabel('PC3')
title('PCA based on data*V')
% to demonstrate the without normalization, the seperation is worse.
figure(3)
R = cov(data);
[V, Lambda] = eigsort(R);
PoV = diag(Lambda)/trace(Lambda);
[PoV, cumsum(PoV)]
scores = data*V;
score1 = scores(:,1);
score2 = scores(:,2);
score3 = scores(:,3);
labels = kind;
scatter3(score1,score2,score3,'ro')
text(score1,score2,score3,labels)
xlabel('PC1')
ylabel('PC2')
zlabel('PC3')
title('PCA based on cov(data)')
function x=d0(v)
x=spdigas(v(:),0,length(v(:)),length(v(:)));
end
MATLAB彩色图片的处理相关推荐
- Matlab 彩色图片直方图均衡化处理 line()函数实现
好了,不说这么多了,直奔主题,本次分别做了两次实现,分别是:彩色图片转灰度图直方图均衡化处理以及彩色图片的直方图均衡化处理,大家可以按需观看. 一.程序源码 (1)彩色图片转灰度图直方图均衡化处理: ...
- 颜色矩特征提取matlab,求matlab彩色图片的颜色特征提取算法的代码,和纹理特征提取的? 爱问知识人...
其实学数字图像处理,关键的不是源代码(和一般编程还是有区别的,这个是经验之谈,其实一般博导未必会编程,但是你和他说说你的方法,他一般都能切中要害),而是你能理解基于概念及适用场所. 基于颜色.纹理.形 ...
- 用SVD压缩彩色图片(MATLAB代码)
Write a MATLAB program to perform color image compression using singular value decomposition (SVD). ...
- MATLAB画固定大小的彩色图片
最近,需要用程序画固定大小的彩色图片及灰度图,是在MATLAB中实现的,在这里写一下是怎样做的: 1. 64*64的彩条图像 2. 对应的灰度图 A=zeros(64,64); ima ...
- MATLAB转化彩色图片为灰度图片命令行窗口代码:
转化彩色图片为灰度图片命令行窗口代码: >> imread docia.png %打开图片 docia.png >> whos %显示当前变量,发现产生临时变量ans,里 ...
- 数字媒体技术作业题代码:matlab将三个灰度图片转化成一个彩色图片
以下分两种情况讨论: 1.我们能够找到分辨率合适的灰度图片(原题图片在PPT中,PPT直接导出图片分辨率较低,我的PPT版本太低了,不做演示,网上有很多教程),直接导出灰度图片并用以下代码: clea ...
- MATLAB应用实战系列(七十一)-MATLAB实战应用案例:图像处理将灰度图片变成负片彩色图片转换成灰度图片
前言 本文目录 获取图片的信息 将灰度图片变成负片 彩色图片转换成灰度图片 图像噪声的添加 加10次噪声 colorbar的使用 将数据转换为图片 clc clearA是结构体名,用来存储读入的图像数 ...
- matlab批量图片旋转处理
matlab批量图片旋转处理 我们用于神经网络训练的图片有时候需要自己标记,但比较麻烦,通过一些旋转处理往往可以扩大训练集数目,但是一般我们用一些图像软件处理会使彩色索引图编程RGB图或者灰度图,不能 ...
- matlab二值化处理黑色背景,Matlab 对图片的二值化处理
这几天做了一道题目,要求在 5000 张图片中找出 30 张与样例相同但经过放大或缩小,高亮或变暗的图片. 整体思路是把图片hash成一段指纹,这个指纹和图片的大小.格式.明暗均无关,只和图片的内容本 ...
最新文章
- 通过显微镜,人们又看到了一个活生生的但是肉眼看不到的世界。透过成千上万的点击数据,在线世界也就变得更为鲜活,更有意义了。...
- 【推荐】使用Ultrapico Expresso学习正则表达式
- 20180517早课记录12-Hadoop
- 程序设计类课程教学中创造技法的探索
- 在.NET环境下将报表导出Excel和Word
- 用面向对象的方法写敲门砖
- Linux 2440 LCD 控制器
- html5 网页游戏论文,JavaScript编写的网页小游戏,很给力
- spark的数三角形算法_数据算法 Hadoop Spark大数据处理技巧 PDF 下载
- CVPR 2019: 4 GPU hours 搜索到一个鲁棒的网络结构
- 洛阳地铁一号线无人驾驶_刚刚,最新消息!涉及洛阳地铁1号线、2号线…
- 为什么我的crontab不起作用呢
- Linux中的权限管理命令-chmod
- 线性时间选择——寻找第k小的数
- arXiv 注册完整过程(图文详解)
- 2022年草根互联网圈较流行的副业汇总
- cmd运行记事本java文件
- java上传加密_Java实现文件的加密与解密
- 并发编程(十)ThreadPoolExecutor源码分析、拒绝策略、队列、示例代码
- 手机有时触摸失灵解决方法
热门文章
- civil 3d 计算机配置,Civil 3D技巧:如果做到设计文件的高效出图?
- BGP Aggregation – Suppress Map
- Win10添加ssh公钥
- 添加网站验证,让搜索引擎收录你的网站
- 获取手机或电脑GPS位置信息(定位平台)
- MAKEFILE【4】-Makefile中的wildcard用法
- pom.xml文件中的dependency的scope属性值为test,但是Test sources root的文件里面不能使用
- 华为开发者选项锁屏已被管理员、加密政策或凭据存储禁用
- 技术博客变成情感博客了吧
- 宏正ATEN发行全新高端式IP-Based Cat 5 KVM多电脑切换器