MATLAB:计算 tif 图像上选定范围的像素值

利用MATLAB现有的很多函数和工具对于图像处理方面是很方便的。
这个程序主要是实现对于给定的 tif 图像,计算自定义范围内像素的均值。主要使用的是 ginput 和 imcrop 函数,使用 ginput 函数会出现一个交互式的十字箭头在屏幕上让你选取图像的范围,然后根据下面的程序就可以计算了。

clear all
clc;
pic = imread('1.tif');
imshow(pic);
data=[];
for i=1:48  %提取多少次就输多少
    imshow(pic);
    [x,y] = ginput(2);%确定图像上的两点利用ginput函数,返回值是两点的座标
    pic_1 = imcrop(pic,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);
         %利用imcrop函数对图像进行切割,输入参数是一个定点座标,
         %从该定点出发向右abs(x(1)-x(2)),向下abs(y(1)-y(2))的区域进行切割
    figure,imshow(pic_1);
    A=pic_1;
    a(i)=mean2(A)  %计算所选区域的像素均值
    data=[data;a(i)]; %将循环的值赋给数组data
    close all  %关闭显示的所有图形窗口
end
xlswrite('2.xlsx',data); 

这只是个简单的小程序,也可以计算一下选定范围内的最大值和最小值等,缺点就是如要选取的范围个数较多的话可能会比较麻烦,不过这个方法可以在不知道位置的情况下直接根据图像上的位置来进行计算;如果知道要计算的范围的座标的话就不用这么麻烦了,直接计算就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章