MATLAB2016b图像处理工具箱(一)

2017-09-11  本文已影响0人  看风景的人_21744

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

  1. 读取和展示图像
I = imread('pout.tif');
imshow(I)
  1. 图像在工作空间的数据
whos I
  1. 提高对比度
figure
imhist(I)
I2 = histeq(I);
figure
imshow(I2)
figure
imhist(I2)
  1. 保存已处理图片
imwrite (I2, 'pout2.png');
  1. 图片信息
imfinfo('pout2.png')

基本图像增强和分析技术

  1. 读取图像到工作空间
I = imread('rice.png');
imshow(I)
原图
  1. 图像预处理:因为光照不均和噪声
background = imopen(I,strel('disk',15));
background

数学展示背景分布:

figure
surf(double(background(1:8:end,1:8:end))),zlim([0 255]);
set(gca,'ydir','reverse');
仅仅展示
I2 = I - background;
imshow(I2)
均衡光照
I3 = imadjust(I2);
imshow(I3);

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

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

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');
分布
上一篇 下一篇

猜你喜欢

热点阅读