那位大神,有matlab灰度图像二值化图像灰度 反白程序 谢谢

查看: 16479|回复: 18|关注: 0
Matlab如何提取灰度图像的一部分
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
我想将一幅图184*186的一部分提出来要用什么语句。比如像看第[30 :80,20:70]这一部分的图要怎么提取
<h1 style="color:#0 麦片财富积分
沉住气 好好研究
关注者: 73
直接新建几个矩阵只包含第[30 :80,20:70]像素值 不就可以了
<h1 style="color:# 麦片财富积分
关注者: 2
楼上说的对,直接提取矩阵就行,如:
I1=I(35:40,25:77);
imshow(I1)
<h1 style="color:# 麦片财富积分
还可以用imcrop
<h1 style="color:# 麦片财富积分
关注者: 2
回复 1# ouluoba 的帖子
同意楼上的以及二楼的
<h1 style="color:#0 麦片财富积分
关注者: 213
1、图像矩阵([30 :80,20:70])得到固定序列的图像数据;
2、使用imcrop()交互式裁剪;
<h1 style="color:# 麦片财富积分
同意楼上的所有回答。
<h1 style="color:# 麦片财富积分
统一所有楼上的所有回答
<h1 style="color:# 麦片财富积分
学习学习,谢谢LZ和LS很多大虾的指导
<h1 style="color:# 麦片财富积分
用剪裁工具把它给才下了
站长推荐 /2
基于模型设计的需求管理和验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区查看: 11094|回复: 4|关注: 0
图像黑白颜色反转
使用MATLAB 代码
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
新手学习matlab代码,求灰度图像黑白颜色反转的代码~急!!!求帮忙~:lol
论坛优秀回答者
关注者: 14
|此回复为最佳答案
img = 255-img
<h1 style="color:# 麦片财富积分
img = 255-img
谢谢,非常有用~
<h1 style="color:# 麦片财富积分
关注者: 57
本帖最后由 cwjy 于
22:01 编辑
假如选用gray(黑白)色标,将色标颜色颠倒的代码如下:
colormap(flipud(gray))
<h1 style="color:# 麦片财富积分
赞,很实用
站长推荐 /2
基于模型设计的需求管理和验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区新浪广告共享计划>
广告共享计划
Matlab&图像处理基本操作
Matlab 图像处理基本操作
一、图像基本操作
1.读取图像并显示:
all&&&&&&&
&%清空Matlab工作平台所有变量(准备工作)
I=imread('pout.tif');& %
该图像是Matlab图形工具箱中自带的图像(\toolbox\images\imdemos)
&& imshow(I)
2.检查内存(数组)中的图像:
Size&&&&&&&&&&&&&&&&&&&
Bytes&& Class
291x240&&&&&&&&&&&&&&&&&&
69840& uint8 array
Grand total is 69840 elements
using 69840 bytes
表示该图像采用8位存储方式并占用了69840B的存储空间。
3.实现图像直方图均衡化:
figure,imhist(I)&&&
% 在新图中显示图像I的直方图
I2=histeq(I);& %
均衡化以后的图像存在I2数组中(图像灰度值扩展到整个灰度范围,对比度提高)
figure,imshow(I2)& % 显示均衡化后的图像
figure,imhist(I2)&& %
显示均衡后的灰度值分布情况
8位图像取值范围:[0,255],16位图像取值范围:[0,655351],双精度图像取值范围:[0,1]
4.保存图像:
imwrite(I2,'pout2.png');&&&
% 将图像由原先的tif格式另存为png格式
5.检查新生成文件的信息:
imfinfo('pout2.png')&&&&
% 观察保存图像的文件信息
&&&&&&&&&&&&&&&&&
'pout2.png'&&&&&&&%
&&&&&&&&&&&&&&
FileModDate: '11-Apr-2009
21:55:35'&& % 文件修改日期
&&&&&&&&&&&&&&&&&
36938&&&&&&
% 文件大小
&&&&&&&&&&&&&&&&&&&
'png'&&&&&&&%&文件格式
&&&&&&&&&&&&
FormatVersion:
[]&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
240&&&&&&&
% 文件宽度
&&&&&&&&&&&&&&&&&&&
291&&&&&&&
% 文件高度
&&&&&&&&&&&&&&&&&
8&&&&&&&&&
% 文件位深度
&&&&&&&&&&&&&&&&
ColorType: 'grayscale'& % 颜色类型
&&&&&&&&&&&&&&&&&&&&&&
二、图像处理Matlab的应用:
实例:消除rice.png图像中亮度不一致的背景,并使用阈值将修改后的图像转换为二值图像,使用成员标记返回图像中对象的个数以及统计特性。按照如下步骤进行:
1.读取和显示图像
&& I=imread('rice.png');
&& imshow(I)
2.估计图像背景:
图像中心位置背景亮度强于其他部分亮度,用imopen函数和一个半径为15的圆盘结构元素对输入的图像I进行形态学开操作,去掉那些不完全包括在圆盘中的对象,从而实现对背景亮度的估计。
&& I=imread('rice.png');
&& imshow(I)
background=imopen(I,strel('disk',15));
&& imshow(background)
figure,surf(double(background(1:8:end,1:8:end))),zlim([0,255]);
set(gca,'ydir','reverse');
显示了背景图(左)和背景表面图(右)
3.从原始图像中减去背景图像(原始图像I减去背景图像得到背景较为一致的图像):
I2=imsubtract(I,background);
&& figure,imshow(I2)
4.调节图像的对比度
(图像较暗,可用imadjust函数命令来调节图像的对比度)
I3=imadjust(I2,stretchlim(I2),[0 1]);
&& figure,imshow(I3);
5.使用阈值操作将图像转换为二进制(二值)图像(bw),调用whos命令查看图像的存储信息.
level=graythresh(I3);&& %
图像灰度处理
bw=im2bw(I3,level);&&&&
% 图像二值化处理
figure,imshow(bw)&&&&&&
% 显示处理后的图片
Name&&&&&&&&&&&&
Size&&&&&&&&&&&&&&&&&&&
Bytes& Class
I&&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
I2&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
I3&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
background&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& uint8 array
bw&&&&&&&&&&&&
256x256&&&&&&&&&&&&&&&&&&
65536& logical array
level&&&&&&&&&&&
1x1&&&&&&&&&&&&&&&&&&&&&&&&
8& double array
Grand total is 327681 elements
using 327688 bytes
6.检查图像中对象个数(bwlabel函数表示了二值图像中的所有相关成分并返回在图像中找到的对象个数)
[labeled,numObjects]=bwlabel(bw,4);
&&&numObjects&&
numObjects =
表示图像中的米粒对象个数是101.
7.检查标记矩阵:(imcrop命令进行交互式操作,图像内拉出较小矩形并显示已标记的对象和部分背景内的像素)
grain=imcrop(labeled)
8.观察标记矩阵(用label2rgb将其显示为一副伪彩色的索引图像):
RGB_label=label2rgb(labeled,@spring,'c','shuffle');
&& imshow(RGB_label);
9.测量图像对象或区域的属性(Regionprops,返回一个结构数据)
graindata=regionprops(labeled,'basic')
graindata =
101x1 struct array with
BoundingBox
graindata(40).Area&& %
显示矩阵中第40个元素的属性
graindata(40).BoundingBox,graindata(40).Centroid&&&
% 寻找最近的边缘和中心点
24.0000&& 20.0000
95.4213&& 70.4924
allgrains=[graindata.Area];&&&&
% 创建一个新的向量allgrains,其包含每个米粒的范围
&& whos allgrains
Name&&&&&&&&&&&
Size&&&&&&&&&&&&&&&&&&&
Bytes& Class
allgrains&&&&&&
1x101&&&&&&&&&&&&&&&&&&&&
808& double array
Grand total is 101 elements
using 808 bytes
allgrains(51)&&&&
% 相当于整个矩阵的索引为51的属性是多少,可见与原来得到的结果相同
max(allgrains)&&&
% 获取最大的米粒大小
biggrain=find(allgrains==404)&&&
% 使用find命令返回这个最大尺寸米粒的标记号
biggrain =
mean(allgrains)&& %
获取米粒的平均大小
9.绘制包含30个柱的直方图来说明米粒大小的分布情况
hist(allgrains,30)
(米粒大小分布柱状图)
相关链接:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 7137|回复: 15|关注: 0
请教啊,matlab运行程序,结果提示:线性灰度变换
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
I=imread('l.bmp');
[m, n,k]=size(I);
J=zeros(m,n,3);
imshow('1.bmp');
title('原图像');
I=double(I);
k2=(gb-ga)/(fb-fa);
k3=(255-gb)/(255-fb);
for&&i=1:m
for&&j=1:n
if&&I(i,j,k)&=30
& & J(i,j,k)= k1*I(i,j,k);
elseif 30&I(i,j,k)&=140
& & J(i,j,k)= k2*( I(i,j,k)-fa)+
& & J(i,j,k)= k3*( I(i,j,k)-fb)+
J=uint8(J);
imshow(J);
我用matlab运行,结果提示:
??? 线性灰度变换
Error: Missing variable or function.
为什么啊?高手帮解答下啊。以前也做过,没问题的我用matlab运行,结果提示:
??? 线性灰度变换
[ 本帖最后由 mooni 于
17:19 编辑 ]
<h1 style="color:#1 麦片财富积分
关注者: 66
I=imread('l.bmp');
imshow('1.bmp');
LZ,是同一个图片吗?l和1,是不是写错了?
<h1 style="color:#4 麦片财富积分
细节决定成败!
关注者: 45
你用中文?
<h1 style="color:# 麦片财富积分
谢谢啊,不行啊
都改为1了,还是不行。还是提示:Error: Missing variable or function
<h1 style="color:# 麦片财富积分
matlab可以有中文啊
<h1 style="color:# 麦片财富积分
我运行了一下,可以的,
imshow('1.bmp'); 得改为& &imshow('I.bmp');
<h1 style="color:#1 麦片财富积分
关注者: 66
我运行了,没问题啊,看图。
5.jpg (29.18 KB, 下载次数: 0)
17:29 上传
6.jpg (30.3 KB, 下载次数: 0)
17:29 上传
<h1 style="color:#4 麦片财富积分
细节决定成败!
关注者: 45
原帖由 baoranan 于
17:27 发表
我运行了一下,可以的,
imshow('1.bmp'); 得改为& &imshow('I.bmp');
呵呵 这个你都找的出来 呵呵~·厉害 这眼神
<h1 style="color:# 麦片财富积分
我把图片装到d:\MATLAB7\work了啊。怎么提示
??? Error using ==& imread
File &I.bmp& does not exist.
图片已经重命名I.bmp了
<h1 style="color:#4 麦片财富积分
细节决定成败!
关注者: 45
原帖由 yzm0109 于
17:39 发表
我把图片装到d:\MATLAB7\work了啊。怎么提示
??? Error using ==& imread
File &I.bmp& does not exist.
图片已经重命名I.bmp了
是要放到你 current directory里
站长推荐 /2
基于模型设计的需求管理和验证
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区}

我要回帖

更多关于 matlab灰度图像转彩色 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信