遍历图像 找最小外接矩形 matlab,2018a版本MatLab利用regionprops函数获取图片中物体轮廓最小外接矩形...
时间: 2023-10-17 10:05:09 浏览: 179
可以使用Matlab中的regionprops函数来获取图片中物体轮廓的最小外接矩形。以下是一个示例代码:
```matlab
% 读入图像
img = imread('example.jpg');
% 转为二值图像
bw = imbinarize(rgb2gray(img));
% 获取物体轮廓
stats = regionprops(bw, 'BoundingBox');
% 遍历所有边界框并绘制最小外接矩形
figure;
imshow(img);
hold on;
for i = 1:numel(stats)
bb = stats(i).BoundingBox;
rectangle('Position', [bb(1), bb(2), bb(3), bb(4)], 'EdgeColor', 'r', 'LineWidth', 2);
end
hold off;
```
这个代码将读取名为`example.jpg`的图像,并将其转换为二值图像。然后,它将使用`regionprops`函数来获取物体轮廓的边界框。最后,它将遍历所有边界框并在原始图像中绘制最小外接矩形。
请注意,`regionprops`函数还可以用于获取其他有关物体轮廓的信息,例如面积、周长、中心点等。有关更多详细信息,请参阅Matlab文档。
相关问题
matlab2018a没有confusionchart函数
是的,确实在Matlab R2018a中没有confusionchart函数。这个函数是在Matlab R2018b中引入的。如果您想在Matlab R2018a中创建混淆矩阵图,可以使用plotconfusion函数来实现。您可以通过以下方式使用它:
1.首先,您需要将您的测试结果和真实标签转换为分类器的输出格式。您可以使用以下代码将其转换为分类器的输出格式:
```matlab
% 假设y_test是测试标签,y_pred是预测标签
y_test_cat = categorical(y_test);
y_pred_cat = categorical(y_pred);
```
2. 接下来,您可以使用confusionmat函数创建混淆矩阵,如下所示:
```matlab
C = confusionmat(y_test_cat, y_pred_cat);
```
3. 最后,您可以使用plotconfusion函数将混淆矩阵可视化。例如:
```matlab
plotconfusion(y_test_cat, y_pred_cat)
```
希望这可以帮助到您。
用matlab2018a版本编写迪杰斯特拉算法代码
在MATLAB 2018a版本中,你可以使用内置的数据结构如`graph`对象来实现Dijkstra算法。以下是简单的Dijkstra算法的代码示例:
```matlab
% 假设你有以下图的邻接矩阵代表图G
adjMat = [0 4 0 0; 4 0 8 0; 0 8 0 5; 0 0 5 0]; % 示例,可以根据实际需求填充
% 创建一个带权重的无向图
G = graph(adjMat,'Weights',diag(sum(adjMat,2)));
% 设置起始节点(通常取最小边权重)
startNode = find(min(diag(adjMat),[],2)); % 找到最小权重的行号
% 初始化距离向量和最近节点表
dist = Inf(size(G.Vertices));
prevNodes = zeros(size(G.Vertices));
% Dijkstra算法的核心部分
[dist, prevNodes] = dijkstra(G, startNode);
% 输出最短路径距离和最近节点
disp(dist); % 距离
disp(prevNodes); % 最近节点表,对应于每个节点的前驱节点
阅读全文