MATLAB2016b图像处理工具箱(一)

基本的图像导入、处理、导出

  1. 读取和展示图像
I = imread('pout.tif');
imshow(I)
  • pout.tif不用再当前的工作目录下,它总是在的(自带的)
  • imtool的功能比imshow更完善
  1. 图像在工作空间的数据
whos I
  1. 提高对比度
  • 直方图
figure
imhist(I)
  • 直方图均衡
I2 = histeq(I);
figure
imshow(I2)
figure
imhist(I2)
  1. 保存已处理图片
imwrite (I2, 'pout2.png');
  • I2保存到工作目录中
  1. 图片信息
imfinfo('pout2.png')

基本图像增强和分析技术

  1. 读取图像到工作空间
I = imread('rice.png');
imshow(I)
MATLAB2016b图像处理工具箱(一)_第1张图片
原图
  1. 图像预处理:因为光照不均和噪声
  • 形态学处理:开操作,删除米粒(灰度级的形态学)
background = imopen(I,strel('disk',15));
MATLAB2016b图像处理工具箱(一)_第2张图片
background

数学展示背景分布:

figure
surf(double(background(1:8:end,1:8:end))),zlim([0 255]);
set(gca,'ydir','reverse');
MATLAB2016b图像处理工具箱(一)_第3张图片
仅仅展示
  • 剪掉背景
I2 = I - background;
imshow(I2)
MATLAB2016b图像处理工具箱(一)_第4张图片
均衡光照
  • 增强对比度
I3 = imadjust(I2);
imshow(I3);

f1=imadjust(f,[low_in high_in],[low_out high_out],gamma)灰度调整,gamma大于1变暗。参考

MATLAB2016b图像处理工具箱(一)_第5张图片
对比度增强
  • 获得二值图像
level = graythresh(I3);     //自动获得最佳阈值
bw = im2bw(I3,level);
bw = bwareaopen(bw, 50);   //删除小面积对象,除去噪声
imshow(bw)
MATLAB2016b图像处理工具箱(一)_第6张图片
bw
  1. 图像分析
  • 连通体个数
cc = bwconncomp(bw, 4)     //4连通
cc.NumObjects     //有96个米粒,因为两个米粒连接在一块
MATLAB2016b图像处理工具箱(一)_第7张图片
cc
  • 第50个连通体(米粒)
grain = false(size(bw));
grain(cc.PixelIdxList{50}) = true;    //包含米粒位置信息,[][]-->[]
imshow(grain);
MATLAB2016b图像处理工具箱(一)_第8张图片
米粒
  • 彩色(仅仅展示)
labeled = labelmatrix(cc);   //第n粒米粒的位置大小是n
RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');//映射
imshow(RGB_label)
MATLAB2016b图像处理工具箱(一)_第9张图片
彩色
  • 连通体数据
graindata = regionprops(cc, 'basic')
MATLAB2016b图像处理工具箱(一)_第10张图片
数据

Area:面积,即像素数; Centroid:质心 ; BoundingBox:外围的长方形

  • 获取最小面积的米粒
grain_areas = [graindata.Area];
[min_area, idx] = min(grain_areas)
grain = false(size(bw));
grain(cc.PixelIdxList{idx}) = true;
imshow(grain);
  • 面积分布
figure
histogram(grain_areas)
title('Histogram of Rice Grain Area');
MATLAB2016b图像处理工具箱(一)_第11张图片
分布

你可能感兴趣的:(MATLAB2016b图像处理工具箱(一))