在matlab中查找图像段的第三个或任何其他最高面积值
Finding 3rd, or any other highest area value of image segment in matlab
我是按照这个写代码的https://in.mathworks.com/help/images/correcting-nonuniform-illumination.html
基本上在我说完之后
grain_areas = [graindata.Area]
[area, id] = max(grain_areas)
从这些行中,我将获得具有最高面积的图像部分,但是我想要在这种情况下表示第三高区域的部分。
使用 sort
和 'descend'
选项来获取面积从大到小。然后就可以随意访问第n个最大的区域了
grain_areas_sorted = sort(grain_areas, 'descend');
grain_areas_sorted(3)
ans =
236
如果您使用的是 MATLAB 2017b 或更新版本,您可以只使用函数 maxk
,它将为您提供第 k 个最大的数字。
[area, id] = maxk(grain_areas,3);
我是按照这个写代码的https://in.mathworks.com/help/images/correcting-nonuniform-illumination.html
基本上在我说完之后
grain_areas = [graindata.Area]
[area, id] = max(grain_areas)
从这些行中,我将获得具有最高面积的图像部分,但是我想要在这种情况下表示第三高区域的部分。
使用 sort
和 'descend'
选项来获取面积从大到小。然后就可以随意访问第n个最大的区域了
grain_areas_sorted = sort(grain_areas, 'descend');
grain_areas_sorted(3)
ans =
236
如果您使用的是 MATLAB 2017b 或更新版本,您可以只使用函数 maxk
,它将为您提供第 k 个最大的数字。
[area, id] = maxk(grain_areas,3);