用MATLAB写一段已知直线斜率差值矩阵,找到斜率差值矩阵中为 1的位置,根据其位置将其相关的直线给提取到原图上
时间: 2024-02-03 16:13:09 浏览: 31
假设已知直线斜率差值矩阵为 `A`,原图为 `img`,可以按照以下步骤提取相关直线:
1. 找到斜率差值矩阵中为 1 的位置:
```
[r, c] = find(A == 1);
```
2. 根据位置提取直线:
```
for i = 1:length(r)
if r(i) == 1
x1 = 1;
y1 = round((c(i)-1) / 2) + 1;
x2 = size(img, 1);
y2 = round((c(i)-1) / 2) + 1;
elseif c(i) == 1
x1 = round((r(i)-1) / 2) + 1;
y1 = 1;
x2 = round((r(i)-1) / 2) + 1;
y2 = size(img, 2);
else
x1 = round((r(i)-1) / 2) + 1;
y1 = round((c(i)-1) / 2) + 1;
x2 = size(img, 1);
y2 = round((c(i)-1) / 2) + 1 + (size(img, 1)-x1)*(c(i)-1)/abs(c(i)-1);
end
img = insertShape(img, 'Line', [y1 x1 y2 x2], 'LineWidth', 2, 'Color', 'red');
end
```
其中,如果直线垂直于 y 轴,则直接在图像边缘绘制,否则计算直线与 y 轴的交点,然后绘制。最后用 `insertShape` 函数将直线绘制到原图上。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)