当前位置:求职简历网 > 知识 > 正文

imfinfo

请教在matlab中用什么函数可获得数码相片的拍照焦距 读取EXIF在matlab中有2个函数,exifread已经不提倡使用,以后版本都是imfinfo了,可以得到 然后再显示DigitalCamara结构,里面有焦距信息 测试:

请教在matlab中用什么函数可获得数码相片的拍照焦距

读取EXIF在matlab中有2个函数,exifread已经不提倡使用,以后版本都是imfinfo了,可以得到
然后再显示DigitalCamara结构,里面有焦距信息
测试:
a是EXIF 版本2.0; c是版本2.1
>> a = 'sony-d700.jpg';

>> b = exifread(a)

b =

PixelYDimension: 1024

PixelXDimension: 1344

ColorSpace: 1

FlashpixVersion: '0100'

Flash: 0

MeteringMode: 2

ExposureBiasValue: 0

ApertureValue: 2.5000

ShutterSpeedValue: 5

CompressedBitsPerPixel: 6

ComponentsConfiguration: [1 2 3 0]

DateTimeDigitized: '1998:12:01 14:22:36'

DateTimeOriginal: '1998:12:01 14:22:36'

ExifVersion: '0200'

ISOSpeedRatings: 200

ExposureProgram: 3

YCbCrPositioning: 1

DateTime: '1998:12:01 14:22:36'

ResolutionUnit: 2

YResolution: 72

XResolution: 72

Orientation: 1

Model: 'DSC-D700'

Make: 'SONY'

ImageDescription: ''

Thumbnail: [1x1 struct]

>> b = imfinfo(a)

b =

Filename: 'sony-d700.jpg'

FileModDate: '25-六月-2010 19:43:34'

FileSize: 79446

Format: 'jpg'

FormatVersion: ''

Width: 672

Height: 512

BitDepth: 24

ColorType: 'truecolor'

FormatSignature: ''

NumberOfSamples: 3

CodingMethod: 'Huffman'

CodingProcess: 'Sequential'

Comment: {}

ImageDescription: ' '

Make: 'SONY '

Model: 'DSC-D700 '

Orientation: 1

XResolution: 72

YResolution: 72

ResolutionUnit: 'Inch'

DateTime: '1998:12:01 14:22:36 '

YCbCrPositioning: 'Centered'

DigitalCamera: [1x1 struct]

>> c = 'fujifilm-dx10.jpg';

>> d = imfinfo(c)

d =

Filename: 'fujifilm-dx10.jpg'

FileModDate: '25-六月-2010 19:47:42'

FileSize: 133074

Format: 'jpg'

FormatVersion: ''

Width: 1024

Height: 768

BitDepth: 24

ColorType: 'truecolor'

FormatSignature: ''

NumberOfSamples: 3

CodingMethod: 'Huffman'

CodingProcess: 'Sequential'

Comment: {}

Make: 'FUJIFILM '

Model: 'DX-10 '

Orientation: 1

XResolution: 72

YResolution: 72

ResolutionUnit: 'Inch'

Software: 'Digital Camera DX-10 Ver1.00 '

DateTime: '2001:04:12 20:33:14 '

YCbCrPositioning: 'Co-sited'

Copyright: 'J P Bowen '

DigitalCamera: [1x1 struct]

>> e = d.DigitalCamera

e =

FNumber: 4.2000

ExposureProgram: 'Normal program'

ISOSpeedRatings: 150

ExifVersion: [4x1 double]

DateTimeOriginal: '2001:04:12 20:33:14 '

DateTimeDigitized: '2001:04:12 20:33:14 '

ComponentsConfiguration: 'YCbCr'

CompressedBitsPerPixel: 1.4000

ShutterSpeedValue: 6.6000

ApertureValue: 4.1000

BrightnessValue: -2.7000

ExposureBiasValue: 0

MaxApertureValue: 4.1000

MeteringMode: 'Pattern'

Flash: [1x131 char]

FocalLength: 5.8000

FlashpixVersion: [4x1 double]

ColorSpace: 'sRGB'

CPixelXDimension: 1024

CPixelYDimension: 768

InteroperabilityIFD: [1x1 struct]

FocalPlaneXResolution: 2151

FocalPlaneYResolution: 2151

FocalPlaneResolutionUnit: 3

SensingMethod: 'One-chip color area sensor'

FileSource: 'DSC'

SceneType: 'A directly photographed image'

>> e.FocalLength

ans =

5.8000


如何用Matlab读入并显示图片文件

  imMatrix = imread('name.jpg')%jpg也可以bmp,图片格式
MATLAB图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像。MATLAB直接从图像文件中读取的图像为RGB图像。
它存储在三维数组中。这个三维数组有三个面,依次对应于红(Red)、绿(Green)、蓝(Blue)三种颜色,而面中的数据则分别是这三种颜色的强度
值,面中的元素对应于图像中的像素点。设所得矩阵为X三维矩阵(256,256,3) ,X(:,:,1)代表红颜色的2维矩阵
X(:,:,2)代表绿颜色的2维矩阵,
X(:,:,3)代表兰颜色的2维矩阵。[X, map]=imread('34.bmp');r=double(X(:,:,1)); %r是256
x 256的红色信息矩阵g=double(X(:,:,2)); %g是256 x 256的绿色信息矩阵b=double(X(:,:,3));
%b是256 x 256的兰色信息矩阵
索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜
色图数组map中的索引。颜色图map为m×3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=[RGB],R、G、B为值域为
[0,1]的实数值,m为索引图像包含的像素个数。

对于相同的数据,采用uint8格式比双精度格式节省内存空间,从而更经济。在MATLAB中
如果索引图像的颜色图小于256行,则它的图像矩阵以uint8格式存储,否则以双精度格式存储。
一:imread:从图像文件夹中读取图像。
A = imread(FILENAME,FMT) 读取图像到A,如果文件是包含一灰度图像,A是一二维矩阵,如果文件是包含一真彩色图像(RGB),A是一三维矩阵(M-by-N-by-3)。FILENAME :图像文件名;FMT:图像文件格式;
文件必须在当前目录下,或在Matlab的一路径上。如果 imread不能够找到一名称为FILENAME的文件,那么它将找一名为FILENAME.FMT的文件
[X,MAP] = imread(FILENAME,FMT) 把图像FILENAME读入与它相关的图像色彩信息写入MAP,图像色彩信息值在范围[0,1]中自动地重新调整.
[...] = imread(FILENAME)这种方式是试图得到文件的格式从文件所包含的信息。
[...] = imread(URL,...)从一Internet URL上读图像 URL 必须包含协议(即: "http://").
1.2数据类型:
TIFF的特殊语法:
[...] = imread(...,IDX)
从很多图像TIFF文件中读一个图像;IDX是一个整数值,它显示了所读图像在文件中的顺序,例如:如果 IDX是 3,
imread将读文件中的第三个图像。 如果省略了这个变量, imread将读文件中的第一个图像.
IMREAD支持的图像文件格式:JPEG TIFF GIF BMP PNG HDF PCX XWD ICO CUR RAS PBM PGM PPM
相关信息也可在Matlab中查看: imfinfo, imwrite, imformats, fread,
二:imwrite输出图像
imwrite(A,FILENAME,FMT) 把图像 A 写入图像文件 FILENAME.
imwrite(X,MAP,FILENAME,FMT) 把 X和它的相关色彩信息MAP写入FILENAME.
imwrite(...,FILENAME) 把图像写入图像文件FILENAME,并推测可能的格式用来做filename的扩展名。扩展名必须是FMT中一合法名.
imwrite(...,PARAM1,VAL1,PARAM2,VAL2,...) 不同的参数控制输出文件的各种不同特征。参数要是当前所支持的HDF,JPEG, TIFF, PNG, PBM, PGM, 和PPM 文件
三:image 显示图像.image(C) 把矩阵 C 转成一图像. C 可以是一MxN 或 MxNx3维的矩阵,且可以是包含 double,
uint8,或 uint16 数据.image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小。但可以加上axis
off命令即可把坐标去掉。
imshow只是显示图像。用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像。
图像像素矩阵的数据类型:(1)显示真彩色图像像素三维矩阵X,如果是uint8类型,要求矩阵的数据范围为0-255,(2)如果是double型,则其数据范围为0-1,要不就会出错或者出现空白页。
类型转换:(1)如果你原来的数值是uint8,在运算中转换为double后,实际要显示的数值没有改变的话,只要用uint8(X)就可转换为
uint8型,如果不想转换频繁,也可在显示时用X/255来转换为符合0-1double类型范围要求的数值显示。(2)如果显示索引图像(二维矩
阵),如果索引图像像素数值是double型,则它的取值范围为1-length(colormap),数值起点为1,则矩阵中数值为1的对应
colormap中第一行数据,如果索引图像像素数值是uint8,则取值范围为0-255,数值起点为0,则矩阵中数值为0的对应colormap中第
一行数据,所以索引图像这两个数据类型之间的转换,要考虑到+1或-1。直接用uint8或double转换则会查找移位,产生失真情况。uint16数
据类型与uint8类似,取值范围为0-65536。
四:其它常用图像操作:
图像显示于屏幕有imshow( ), image( )函数;
图像进行裁剪imcrop( );
图像的插值缩放imresize( )函数实现;
旋转用 imrotate( )实现。
五:具体的操作
下面通过运用图像处理工具箱中的有关函数对下图(nice.bmp)进行一些变换。见后面的transfer.m内容!

变换前图片:(nice.bmp)

变换后所得图片:newpic.bmp
例,在电脑F\picture下有一彩色图像文件nice.bmp,则可由下述语句读取:
下面是对图像 nice.bmp以y轴为对称轴所做的一个对称变换。
% Transfer1.m
clear all
figure
[x,map]=imread('F:\picture\nice.bmp');% 所得x为一375x420x3的矩阵
[w1,w2,w3]=size(x); % 375 X 420
w22=floor(w2/2);
image(x); %显示出图像
title('HELLO! @This is the first pose of me')%则显示出图像nice.bmp
axis off; % 去掉图像中的坐标
colormap(map); % colormap(),图像查找表函数。函数结构为colormap(map),设置当前的图像查找表到map。
imwrite(x,map,'nice.bmp')
for i=1:w1
for j=1:w22 % 图像关于y轴对折
t=x(i,j);
x(i,j)=x(i,w2-j+1);
x(i,w2-j+1)=t;
end
end
figure
image(x);
axis off
title('HELLO!!@@ Can you find any difference of my two picture! ') colormap(map);
imwrite(x,map,'newpic.bmp') %把x写到nepic2.bmpz中去
% Transfer1.m文件中包含了最基本也是最常用的对读像处理的命令。
在对图像处理的整个过程中,实质上是对[x,map]=imread(‘figure')函数中所得x矩阵的各种变换!


matlab数字图像处理的有关问题

这个问题需要设置坐标系属性。在gui中会受到大小的限制。这里给出一个例子,希望能帮到你。代码:clc; clear all; close all;
I1 = imread('rice.png'); % 读取图像
I2 = imresize(I1, 2, 'bilinear'); % 放大2倍
% 全屏显示窗体
figure('units', 'pixels', 'position', get(0, 'screensize'));
subplot(1, 2, 1); imshow(I1); title('原图像');
% 该坐标系属性设置
set(gca, 'units', 'pixels');
pos1 = get(gca, 'position');
set(gca, 'position', [pos1(1:2) size(I1, 1) size(I1, 2)]);
subplot(1, 2, 2); imshow(I2); title('放大2倍的图像');
% 该坐标系属性设置
set(gca, 'units', 'pixels');
pos2 = get(gca, 'position');
set(gca, 'position', [pos2(1:2) size(I2, 1) size(I2, 2)]);结果:


MatLab 关于图像处理的书籍有哪些值得推荐

杨高波,杜青松 编著的《MATLAB图像/视频处理应用及实例》,我觉得还不错,内容丰富,是值得一看的。
主要目录:第1章 MATLAB 7概述;第2章 MATLAB图像处理基础;第3章 图像的运算;第4章 MATLAB视频处理基础;第5章 图像的正交变换;第6章 图像增强;第7章 图像的压缩编码 ;第8章 形态学图像处理 ;第9章 图像分割 ;第10章 图像的特征提取与分析 ;第11章 光流场计算与基于块的运动估计;第12章 视频压缩编码;第13章 数字视频水印实例


两个向量求互相关性,用Matlab画出图像后,应该如何分析?

峰值最大表示在该处两个信号的相关性最强,所以相关系数的大小表示相关强度。
你可以看一下x1和x2的自相关是怎样的情况,一般对于伪随机序列,自相关峰只有一个很大的值,即当序列移位至和自身完全相同时才得到最大峰,其他情况基本接近于0.
评价两个信号间的相关程度,可以用互相关的峰值 与自相关峰值作简单的比较,判定它们的相关程度。如果相关性很差,应该互相关的峰值远小于自相关峰值。


激光的空间相干性?

当然有,
光,包括激光,
时间相干性是指光的强度与频率或波长的关系,强度越是集中在很小的频率范围内,称单色性越好,
空间相干性是指光在空间的各个点是否具体有固定的相位关系,有固定的相位关系的空间范围越大,称空间相干性越好,
一般的工科大学非物理专业,在讲解 迈克尔逊干涉仪时,可能会讲解时间相干性,但空间相干性一般是物理专业才讲解的。


matlab图像处理实例

小波融合实例:clc;clear all;close all;
%%读取两幅图像
X1=imread('rice.png');
X2=imread('cameraman.tif');
if ndims(X1)==3
X3=rgb2gray(X1);
else
X3=X1;
end
if ndims(X2)==3
X4=rgb2gray(X2);
else
X4=X2;
end
subplot(221)
[m,n]=size(X3);
imshow(X3);
subplot(222)
imshow(X4);
X3=double(X3);
X4=double(X4);
%%进行小波变换
[C1,L1]=wavedec2(X3,2,'sym4');
[C2,L2]=wavedec2(X4,2,'sym4');
%%融合
C=(C1+C2)*0.5;
X=waverec2(C,L1,'sym4');
X=uint8(X);
subplot(224)
imshow(X);


知识相关

知识推荐

求职简历网为你分享个人简历、求职简历、简历模板、简历范文等求职简历知识。

Copyrights 2018-2024 求职简历网 All rights reserved.