如何用matlab处理CCD图像得出激光光斑直径大小

如何用matlab处理CCD图像得出激光光斑直径大小,第1张

用matlab图像处理确定激光光斑的中心的详细过程和算法

个不难的:

-

图像预处理,自动阀值方法二值化,然后滤掉噪声点,得到比较干净的圆形光斑离散点集;

-

用以下这个程序拟合出离散点的圆,并找出圆心。

其中第一步的自动阀值可以用otsu函数(otsu

method,大津法),其余都很基础;第二步的程序如果看不懂,可以进一步看看参考资料连接。

function

[xc,yc,R,a]

=

circfit(x,y)

%

%

[xc

yx

R]

=

circfit(x,y)

%

%

fits

a

circle

in

x,y

plane

in

a

more

accurate

%

(less

prone

to

ill

condition

)

%

procedure

than

circfit2

but

using

more

memory

%

x,y

are

column

vector

where

(x(i),y(i))

is

a

measured

point

%

%

result

is

center

point

(yc,xc)

and

radius

R

%

an

optional

output

is

the

vector

of

coeficient

a

%

describing

the

circle's

equation

%

%

x^2+y^2+a(1)*x+a(2)*y+a(3)=0

%

%

By:

Izhak

bucher

25/oct

/1991,

x=x(:)

y=y(:)

a=[x

y

ones(size(x))]\[-(x.^2+y.^2)]

xc

=

-.5*a(1)

yc

=

-.5*a(2)

R

=

sqrt((a(1)^2+a(2)^2)/4-a(3))

参考资料:

黑白的不是本来就是光强了么?还是我没理解你的问题?

随便说点可能有用的吧。

matlab直接读进来貌似默认三通道rgb图,可以用rgb2gray转灰度图,然后im2double函数转数值矩阵,之后就可以进行常规的矩阵运算了。矩阵中的每一个数据就是该像素的亮度。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11356555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存