arrays - 尝试使用 image-proc 工具箱中的 regionprops 测量高尔夫球的直径
问题描述
我编写了一个程序,它拍摄高尔夫球的图像,对其进行处理以创建一个二进制图像,该图像仅表示白色的球,而图片的其余部分(背景)则为黑色。我想使用内置函数 regionprops 来计算高尔夫球的直径。
我的代码:
img = imread("golf2.jpg");
%% part 1
img_R = img(:,:,1);
img_G = img(:,:,2);
img_B = img(:,:,3);
figure (1)
subplot(2,2,1); imshow(img);
title('original image');
subplot(2,2,2); imshow(img_R);
title('R plane image');
subplot(2,2,3); imshow(img_G);
title('G plane image');
subplot(2,2,4); imshow(img_B);
title('B plane image');
figure(2)
imhist(img_B)
%% part 2
img_grayscale = imadjust(img_B);
[row, col] = size(img_grayscale);
for i = 1:row
for j = 1:col
if (img_grayscale(i,j) < 100)
img_grayscale(i,j) = 0;
else
img_grayscale(i,j) = 255;
end
end
end
figure(3)
imshowpair(img_grayscale, img_B, 'montage')
%% part 3
BW = img_grayscale;
fill = imfill(BW, 'holes');
figure; imshow(fill)
se = strel('disk', 10);
open = imopen(fill,se);
figure(4)
imshow(open)
%% part 4
diameter = regionprops(open, 'MajorAxisLength')
figure(5)
# for doing a measurement myself and checking the answer
imshow(img)
d = imdistline;
我的直径输出是(我不知道为什么它显示 7 次):
直径 =
具有字段的 255×1 结构数组:
MajorAxisLength
直径 =
具有字段的 255×1 结构数组:
MajorAxisLength
直径 =
具有字段的 255×1 结构数组:
MajorAxisLength
直径 =
具有字段的 255×1 结构数组:
MajorAxisLength
直径 =
具有字段的 255×1 结构数组:
Centroid
直径 =
具有字段的 255×1 结构数组:
MinorAxisLength
直径 =
具有字段的 255×1 结构数组:
MajorAxisLength
我很高兴知道如何解决它,谢谢。
解决方案
推荐阅读
- microsoft-teams - MS Teams 选项卡 - 在 Android 和 iOS 客户端上下载文件
- java - NoClassDefFoundError 在运行时收到此错误?
- scala - Akka HighLevelHttp 从恢复 Future 返回 Route
- python - 计算数据框中两个地理编码之间的距离
- macos - iTerm2 现在将当前行保持在屏幕顶部,无法查看历史记录
- xml - 查询构建一对多结构
- java - 登录页面不会重定向到主活动页面
- arrays - 如何将 Int 转换为 ByteArray,然后使用 Kotlin 将其转换回 Int?
- flutter - 在颤动本地通知插件中暂停通知?
- azure-functions - VNET 上的 Azure Functions 无法与本地资源通信