利用 Ostu 自动阈值对图像“fly.jpg”进行二值化,之后完成蓝色线条的边界 跟踪,给出matlab代码
时间: 2023-12-23 12:06:02 浏览: 67
好的,下面是Matlab代码实现:
```matlab
% 读取图像
img = imread('fly.jpg');
% 灰度化处理
gray = rgb2gray(img);
% Ostu 自动阈值处理
level = graythresh(gray);
bw = im2bw(gray, level);
% 边界跟踪
[B, L] = bwboundaries(bw, 'noholes');
% 绘制蓝色线条边界
figure;
imshow(img);
hold on;
boundary = B{1};
plot(boundary(:,2), boundary(:,1), 'b', 'LineWidth', 2);
% 显示图像
hold off;
```
运行后,会弹出显示“fly.jpg”图像的窗口,其中蓝色线条为边界跟踪的结果。
相关问题
利用matlab实现 边界跟踪分割练习: 利用 Ostu 自动阈值对图像“fly.jpg”进行二值化,之后完成蓝色线条的边界 跟踪,给出代码
好的,下面是Matlab代码实现:
```matlab
% 读取图像
img = imread('fly.jpg');
% 灰度化处理
gray = rgb2gray(img);
% Ostu 自动阈值处理
level = graythresh(gray);
bw = im2bw(gray, level);
% 边界跟踪
[B, L] = bwboundaries(bw, 'noholes');
% 绘制蓝色线条边界
figure;
imshow(img);
hold on;
boundary = B{1};
plot(boundary(:,2), boundary(:,1), 'b', 'LineWidth', 2);
% 显示图像
hold off;
```
运行后,会弹出显示“fly.jpg”图像的窗口,其中蓝色线条为边界跟踪的结果。
利用 Ostu 自动阈值对图像“fly.jpg”进行二值化,之后完成蓝色线条的边界 跟踪,给出python代码
好的,下面是Python代码实现:
```python
import cv2
# 读取图像
img = cv2.imread('fly.jpg')
# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Ostu 自动阈值处理
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# 边界跟踪
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制蓝色线条边界
cnt = contours[0]
cv2.drawContours(img, [cnt], 0, (255, 0, 0), 2)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行后,会弹出显示“fly.jpg”图像的窗口,其中蓝色线条为边界跟踪的结果。
阅读全文