类似的代码网上一搜全都是,不少代码运行起来各种错误,真正正确的还是要靠自己慢慢尝试和修改。以下是本人亲测,绝对正确可行的代码。
首先需要新建两个脚本,功能分别是图像的前期处理和检测圆弧,话不多说,代码实现如下:
function [bw] = image_deal(bw)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
%------------------------------输入参数-----------------------------
% BW:处理前图像;
%-------------------------------------------------------------------
%------------------------------输出参数-----------------------------
% BW:二值后图像;
%-------------------------------------------------------------------
% From Nanjing University of Science and Technology,ZLy
%%建立sobel算子
sobel_xl=[-1,0,1;-2,0,2;-1,0,1];
sobel_xr=[1,0,-1;2,0,-2;1,0,-1];
sobel_yl=[1,2,1;0,0,0;-1,-2,-1];
sobel_yr=[-1,-2,-1;0,0,0;1,2,1];
%%图像灰度化
bw=rgb2gray(bw);
%%把图像数据类型转换为双精度浮点类型
bw=im2double(bw);
%%图像与sobel算子进行卷积
A=conv2(bw,sobel_xl);
B=conv2(bw,sobel_xr);