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); 

這只是個簡單的小程序,也可以計算一下選定範圍內的最大值和最小值等,缺點就是如要選取的範圍個數較多的話可能會比較麻煩,不過這個方法可以在不知道位置的情況下直接根據圖像上的位置來進行計算;如果知道要計算的範圍的座標的話就不用這麼麻煩了,直接計算就可以了。

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