matlab图像处理问题

作者&投稿:房鹏 (若有异议请与网页底部的电邮联系)
matlab图像处理关于unit8的问题~

为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像。
imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中。

因此,matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算,
I2=im2double(I1) %把图像I1转换成double精度类型 (假设图形矩阵范围0~255)
或者
I64=double(I8)/255; %uint转换成double
如果不转换,计算会产生溢出。

matlab要从命令窗口输入命令来做图像处理
假如你的图像在桌面上,名字是a.bmp
你可以用如下方法读入图片:
I=imread('C:\Documents and settings\Administrator\桌面\a.bmp');
imshow(I) %显示图像
你可以根据此来修改你的小波变换程序,以便用于你的图像处理。你自己先试试,如果不行的话,再把你的程序贴出来,我帮你看看,改好了发给你。
lhywang06@126.com,欢迎你来问。
王老师

应该是视频在前面,处理图像在后面吧?
你后面的那个是每隔5帧截取一张图片储存并以i命名。
想要连接起来其实比较简单的,就是在处理图片处加一个大的for循环就可以了。
把视频程序放前面。截图储存后再读取处理,这里要注意的是你每隔5帧截一个图片,是不是有点太频了?还有弄个短点的视频,5秒左右。这样不会太浪费计算机资源,如果太大了可能会蓝屏或者死机哦。
其实,连在一起很简单的。就这样;(我在我机子上运行了一次,储存地址改了,你自己改回来吧)
clc;clear all;close all;
mov = VideoReader('C:\Users\epwqe_000\Desktop\MatlabAsa\sssss.avi');%改地址
fnum = mov.NumberOfFrames;%
for i = 1:5:fnum
frame = read(mov, i);
imshow(frame);

imwrite(frame,strcat('C:\Users\epwqe_000\Desktop\MatlabAsa\New Folder\',num2str(i),'.jpg'),'jpg');%改地址

img=strcat(num2str(i),'.jpg');
I = imread(img);

[Ix,Iy,Iz]=size(I);
if Ix>400&Iy>300
I=imresize(I,[400,Iy*400/Ix],'nearest');
end
figure
imshow(I)%输出图像
title('normal image')
I=double(I); %将I转换成double类型
[hue,s,v]=rgb2hsv(I); %将RGB格式转换成HSV格式
cb=0.148*I(:,:,1)-0.291*I(:,:,2)+0.439*I(:,:,3)+128;%将RGB转换为YCrCb格式
cr=0.439*I(:,:,1)-0.368*I(:,:,2)-0.071*I(:,:,3)+128;
[w h]=size(I(:,:,1));%获取转化后的I图像

for i=1:w
for j=1:h
if 145<=cr(i,j)&cr(i,j)<=165&145<=cb(i,j)&cb(i,j)<=180&0.01<=hue(i,j)&hue(i,j)<=0.15
segment(i,j)=1;
else
segment(i,j)=0;
end
end
end
figure
imshow(segment);

skin=segment;
% 去除小像素联通区域
skin=bwareaopen(skin,round(w*h/900));
%dilating
se=strel('square',5);%创建结构区域
skin=imdilate(skin,se); %膨胀作用
im(:,:,1)=I(:,:,1).*skin;
im(:,:,2)=I(:,:,2).*skin;
im(:,:,3)=I(:,:,3).*skin;
figure
imshow(uint8(im));
title('skin areas')
BW = skin;
L = bwlabel(BW,8);%
BB = regionprops(L, 'BoundingBox');%L等于几对应几
BB1=struct2cell(BB);%转换结构bb到bb1里
BB2=cell2mat(BB1);
figure,imshow(uint8(I));
title('result image');

[s1 s2]=size(BB2);
for k=3:4:s2-1
if (BB2(1,k)/BB2(1,k+1)) < 1.8 &&....
(BB2(1,k)/BB2(1,k+1)) > 0.4 &&....
(BB2(1,k)*BB2(1,k+1)) > 1000
hold on;
rectangle('Position',[BB2(1,k-2),BB2(1,k-1),BB2(1,k),BB2(1,k+1)],'EdgeColor','r' )%指定位置添加矩形
end
end
end

前提:把图像的名字都命名为“1.jpg”的形式,依次往后,然后把程序中的路径改对,然后才可以允许下面的程序(已测试,可以运行)。
fnum=8;%相片数量
for i = 1:fnum
picname=strcat('C:/Users/printer/Desktop/tes/',num2str(i),'.jpg');
I = imread(picname);
figure;imshow(I);

[Ix,Iy,Iz]=size(I);
if Ix>400&Iy>300
I=imresize(I,[400,Iy*400/Ix],'nearest');
end
figure
imshow(I)%输出图像
title('normal image')
I=double(I); %将I转换成double类型
[hue,s,v]=rgb2hsv(I); %将RGB格式转换成HSV格式
cb=0.148*I(:,:,1)-0.291*I(:,:,2)+0.439*I(:,:,3)+128;%将RGB转换为YCrCb格式
cr=0.439*I(:,:,1)-0.368*I(:,:,2)-0.071*I(:,:,3)+128;
[w h]=size(I(:,:,1)); %获取转化后的I图像
for i=1:w
for j=1:h
if 145<=cr(i,j)&cr(i,j)<=165&145<=cb(i,j)&cb(i,j)<=180&0.01<=hue(i,j)&hue(i,j)<=0.15
segment(i,j)=1;
else
segment(i,j)=0;
end
end
end
figure
imshow(segment);

skin=segment;
% 去除小像素联通区域
skin=bwareaopen(skin,round(w*h/900));
%dilating
se=strel('square',5);%创建结构区域
skin=imdilate(skin,se); %膨胀作用
im(:,:,1)=I(:,:,1).*skin;
im(:,:,2)=I(:,:,2).*skin;
im(:,:,3)=I(:,:,3).*skin;
figure
imshow(uint8(im));
title('skin areas')
BW = skin;
L = bwlabel(BW,8);%
BB = regionprops(L, 'BoundingBox');%L等于几对应几
BB1=struct2cell(BB);%转换结构bb到bb1里
BB2=cell2mat(BB1);
figure,imshow(uint8(I));
title('result image');
[s1 s2]=size(BB2);
for k=3:4:s2-1
if (BB2(1,k)/BB2(1,k+1)) < 1.8 &&....
(BB2(1,k)/BB2(1,k+1)) > 0.4 &&....
(BB2(1,k)*BB2(1,k+1)) > 1000
hold on;
rectangle('Position',[BB2(1,k-2),BB2(1,k-1),BB2(1,k),BB2(1,k+1)],'EdgeColor','r' )%指定位置添加矩形
end
end
close;
end


MATLAB--数字图像处理 击中击不中变换
原理 击中击不中变换(HMT)需要两个结构元素B1和B2,合成一个结构元素对B=(B1,B2)一个用于探测图像内部,作为击中部分;另一个用于探测图像外部,作为击不中部分。显然,B1和B2是不应该相连接的,即B1∩B2=Φ。击中击不中变换的数学表达式为:g(x, y)=hitmiss[f(x, y), B]=erode[f(x, y), ...

MATLAB--数字图像处理 频域图像分析
1.熟悉MATLAB软件的使用。 2.掌握频域图像分析的原理及数学运算。 1.自选一幅图像,并对其分别添加一定强度的周期噪声和高斯噪声,然后分别采用高斯模板、中值滤波的时域方法以及傅里叶变换和小波变换的频率滤波方法对该含噪图像进行去噪处理,并基于PSNR值和视觉效果这两个指标来比较这四种滤波方法对两种不同噪声的去噪能...

如何利用matlab对图像进行处理,效果如图所示
1、你什么图像?rgb、灰度图还是二值图像?rgb的话反什么色?二值图像反色:bw1=~bw;%bw是原二值图像,bw1为反色后图像 2、rgb到灰度图:p=imread('tuxiang.jpg');%rgb图 gray=rgb2gray(p);%灰度图 figure,imshow(gray);%显示灰度图 3、灰度图后的阈值分割:bw=im2bw(gray,graythresh(gray...

matlab图像处理教程
楼主你太狠了,5分要别人做这么多!1.图像的读入、显示及信息查询:(1)I=imread ('lena.jpg') %图像读入 imshow(I) %图像显示 (2)inf=imfinfo('lena.jpg') % 图像信息查询 2.图像的常用处理语句:(1) X=rgb2gray(I) ; imshow(X) %彩色图像转灰度图像 (2)X2=grayslice(I...

matlab的图像处理功能属于什么组成部分
MATLAB 的数学函数库包含了大量的计算算法,包括基本函数、矩阵运算和复杂算法等。MATLAB 的图形处理系统能够将二维和三维数组的数据用图形表示出来,并可以实现图像处理、动画显示和表达式作图等功能。MATLAB 应用程序接口使 MATLAB 语言能与 C 或 FORTRAN 等其他编程语言进行交互。MATLAB 工具箱 MATLAB 的...

matlabrgb2gray函数的原理
MATLAB中rgb2gray函数的原理是将彩色图像转换为灰度图像。以下是详细的解释:一、函数功能 rgb2gray函数的主要功能是将彩色图像转换为灰度图像。在数字图像处理中,灰度图像是一种只包含亮度信息的图像,它不含颜色信息。将彩色图像转换为灰度图像有助于简化图像,降低计算复杂度,并且便于某些特定的图像处理操作...

关于用matlab编程实现图像处理
1、规定图片的大小,比如480*640;2、规定分块的大小,比如24*32(分成20*20块);3、该块随即取n个像素点,先假设取20个,然后平均这20个像素点的G值定义为G1,求这块所有像素点的G值平均值G0;4、求G1与G0的方差varG,存进一个数组中备用;image=imread('tupian.jpg');G1=0;temp=[];f...

matlab处理图像
1、I = imread('图像名称'); I = imresize(I,[1024,768]);2、不太懂你是什么意思,是求出椭圆像素的坐标呢,还是求出像素值,像素值的话,具目测应该为0 3、对边界像素点除噪是什么意思,去噪的话一般是对整幅图像操作的,这幅图像你去网上找一下去噪的方法,应该可以去掉椭圆周围的小点点...

求助Matlab的image和imagesc的用法
MATLAB图像处理之imshow和imagesc inshow主要用于调用图像索引,比如: imshow(X,map)其功能等同于: image(X) colormap(map)但是,inshow的功能要强大一些,比如用于灰度图像,RGB图像,二进制图像,都可以应用。imagesc属于图像缩放函数具体说一些例子:要显示一副灰度图像,可以调用函数 imshow 或 imagesc...

matlab 图像处理中,直方图均衡处理与直方图归一化各有什么作用?_百度...
1、直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。 2、归一化是一种无量纲处理...

福海县18348185208: MATLAB图像处理问题 -
苦霍益心: 程序如下: 你可以逐句输入调试;imrgb = imread('D:\a.jpg'); %获取彩色图像;imrgb变量自己定义;imgray = rgb2gray(imrgb); %转化为灰度;imbw = im2bw(imgray, 0.7 ); %灰度图变成黑白图,0.7为阈值,可以自己调整 imshow(imbw); ...

福海县18348185208: 求助matlab图像处理问题 -
苦霍益心: clc; clear;%a.jpg是你的原始图像,注意要和文件放到一个文件夹中 I=imread('a.jpg'); figure(1); imshow(I); [y1,x1] = ginput(1);% 选中目标参照点1 [y2,x2] = ginput(1);% 选中目标参照点2 for i=x1:x2 for j=y1:y2 I(i,j,:)=0; end end figure(2); imshow(I);

福海县18348185208: 有点着急了matlab图像处理的问题一幅图片,用matlab处
苦霍益心: 用MATLAB处理图片除了提到的“灰度(转换)”去除噪声,如果就直接二值化得话,对于一副对比度不大的图片,是不容易清楚地区分的.可以试试灰度拉伸,灰度值均衡化,自适应阈值分割等图像增强的方法.尺寸测量也就是特征提取,面积可以用扫描法计算区域的像素值,如sum=0;for i=30:480 for j=5:505if j2(i,j)>=0.5 (j2为处理图像)sum=sum 1; end如果是计算轮廓长度,用边缘提取的计算再用扫描法计算像素值点.MATLAB图像处理的算法用到得程序都不难,只要你的图像处理流程试出来的效果好,计算相对都比较简单.

福海县18348185208: Matlab 图像处理的问题 -
苦霍益心: 设定感兴趣区域,ROI.功能:用于选择图像中的多边形区域.用法:BW = roipoly(I,c,r) BW = roipoly(I) BW = roipoly(x,y,I,xi,yi) [BW,xi,yi] = roipoly(...) [x,y,BW,xi,yi] = roipoly(...) BW = roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标.BW选中...

福海县18348185208: 有关matlab 图像处理的问题 -
苦霍益心: The image is stored as matrix in Matlab.If the image is color image.B=imread(Img);for i=8:16for j=8:16C(i-7,j-15,1)=B(i,j,1);C(i-7,j-15,2)=B(i,j,2);C(i-7,j-15,3)=B(i,j,3);ende...

福海县18348185208: 关于MATLAB方面的图像处理问题
苦霍益心: 做一个小测试.最好还是试一下别的思路. 代码: % 先读取图像,然后进行灰度处理,再二值化,在去噪, % 再用一种算法进行边缘提取. % 然后对零件的尺寸进行检测呢(测零件的内径和外径) clc; clear all; close all; I = imread('c:\\ce.jpg'); ...

福海县18348185208: matlab编程解决图像问题 -
苦霍益心: imread 读入一幅图像 imhist 输出其直方图 imrotate 对该图像进行水平和垂直反转 imresize 将一个图像放大4倍 fft 傅立叶变换 这些函数可以解决你的部分问题. 在Matlab中你需要help imread就能查看它的使用方法,其它函数一样查询.

福海县18348185208: 怎样用matlab解决建模、仿真及图像处理的问题 -
苦霍益心: matlab有很多的模块,在主题的命令窗口里,可以进行简单命令的执行 对于图像处理这样的命令集合需要使用m脚本进行编写,然后运行绘图 对于建模仿真,你可能会用到matlab里面的一个独立性比较强的模块,simulink,它在建立一个系统(数学,物理,电子,控制...)之后,可以进行动态的仿真 另外有一些针对不同领域的工具箱可能也很有用

福海县18348185208: matlab图像处理问题,谁能解释一下这些语句啥意思,专业点的急求!! -
苦霍益心: % Convert to RGB to GRAY SCALE image.nFrames = size(Im,4);%取得Im数据的第4维度的数据个数 for i = 1:5%读取DATA目录下的1.jpg,2.jpg,...,5.jpg图像%Im{i} =double(imread(['DATA/',int2str(i),'.jpg'])); Imzero = Im(:,:,:,i)+Imzero;%将这几幅图像进行累和 end Imback = Imzero/5*255%取这几幅图像的平均值,作为背景图像

福海县18348185208: 一个简单的matlab 图像处理 置零问题 -
苦霍益心: 如果你只是针对这张图片不涉及让程序自动搜索检测的部分,最简单的方法是 把图片在matlab里打开,用data cursor 找到人所在的区域坐标,设左上和右下两点为(x1,y1),(x2,y2) mask = zeros(size(img)); mask(y1:y2,x1:x2)=1; filterImg = mask.*img;filterImg 就是只有人的图,同理对车操作

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网