如何擬合計算出影象中光斑的圓心位置matlab

2021-06-11 04:38:56 字數 3585 閱讀 5771

1樓:匿名使用者

樓主的意思是:已知**上的一條曲線,如何獲取該曲線上點的座標(x,y)。

下面有段程式,是本人讀曲線座標所寫,看看對樓主是否有幫助:

clcclear all

im1 = imread('runx2.jpg'); %樓主在此替換成自己的**.

im = rgb2gray(im1);

im = im(end:-1:1,:);

%imshow(im)

[m,n]=size(im);

cordx=;

cordy=;

for i=1:m

for j=1:n

if im(i,j)<100 %這個引數100可以在 0~255 之間隨意改變,值越小越精確.

cordx=[cordx i];

cordy=[cordy j];

endend

endx=;y=;%得到的座標

l=2;%此處引數可調

for k=1:l:length(cordx)x=[x cordx(k)];

y=[y cordy(k)];

end[xx ind]= sort(y);

yy = x(ind);

plot(xx,yy,'+')

*** = unique(xx);

yyy = zeros(size(***));

for k = 1:length(***)indxx = xx==***(k);

n = sum(indxx);

yyy(k) = sum(indxx.*yy)/n;

endfigure

plot(***,yyy,'+')

runx2 = [***' yyy'];

2樓:

你好你可以使用

[x,y]=ginput

回車以後你就可以輸出改點的x,y座標了

希望對你有幫助

3樓:

曲線方程都有了,那輸入、輸出(座標點)應該可以計算出來的。

還是我對你的問題沒有理解了?

4樓:匿名使用者

以取點座標的方式,把曲線匯出來。先把擬合的曲線儲存在workspace裡, 然後x=[1 2 3 4 5], (確保取值在x 區間內)再求y=fittedmodel(x) 就能知道擬合曲線的座標啦

用matlab影象處理,檢測圓形光斑的中心,

如何根據matlab擬合的曲線讀出影象中點的座標值?

5樓:匿名使用者

樓主的意思是:已知**上的一條曲線,如何獲取該曲線上點的座標(x,y)。

下面有段程式,是本人讀曲線座標所寫,看看對樓主是否有幫助:

clcclear all

im1 = imread('runx2.jpg'); %樓主在此替換成自己的**.

im = rgb2gray(im1);

im = im(end:-1:1,:);

%imshow(im)

[m,n]=size(im);

cordx=;

cordy=;

for i=1:m

for j=1:n

if im(i,j)<100 %這個引數100可以在 0~255 之間隨意改變,值越小越精確.

cordx=[cordx i];

cordy=[cordy j];

endend

endx=;y=;%得到的座標

l=2;%此處引數可調

for k=1:l:length(cordx)x=[x cordx(k)];

y=[y cordy(k)];

end[xx ind]= sort(y);

yy = x(ind);

plot(xx,yy,'+')

*** = unique(xx);

yyy = zeros(size(***));

for k = 1:length(***)indxx = xx==***(k);

n = sum(indxx);

yyy(k) = sum(indxx.*yy)/n;

endfigure

plot(***,yyy,'+')

runx2 = [***' yyy'];

6樓:匿名使用者

以取點座標的方式,把曲線匯出來。先把擬合的曲線儲存在workspace裡, 然後x=[1 2 3 4 5], (確保取值在x 區間內)再求y=fittedmodel(x) 就能知道擬合曲線的座標啦

drawoval()函式怎麼算出圓心的座標

7樓:fly恨不能相愛

設半徑為r;座標為圓心(x,y);intr=10;intx=50,y=60;drawoval(x-r/2,y-r/2,x+r/2,y+r/2);這樣就可以了。

8樓:匿名使用者

用三角函式啊,兄弟. 舉例,圓o的圓心為(a,b),半徑為r,點a與到x軸的為角α. 則點a的座標為(a+r*cosα,b+r*sinα)

matlab二值影象用最小二乘法擬合成圓,並找其圓心

9樓:射手座

用最小二乘法可以得出,圓心橫座標就是圖上點的橫座標的平均值,圓心縱座標就是圖上的點的

座標的平均值;(只找了左邊的圓 右邊的一樣,座標都是畫素座標)clc,clear;

data=imread('round.png');

data1=double(data(:,1:250));

data2=double(data(:,251:506));

% figure(1)

% imshow(data1);

% figure(2)

% imshow(data2);

%對於第一個圓

% figure(3)

% mesh(data1)

[x,y]=find(data1>20);%第二個圓只需把data1換成data2

plot(x,y,'*');

x0=mean(x);%圓心橫座標

y0=mean(y);%圓心縱座標

hold on

plot(x0,y0,'*');

r=mean(sqrt((x-x0).^2+(y-y0).^2))hold on

xx=x0-r:x0+r;

y1=sqrt(r^2-(xx-x0).^2)+y0;

y2=-sqrt(r^2-(xx-x0).^2)+y0;

plot(xx,y1,'r')

plot(xx,y2,'r')

matlab 如何提取影象中的畫素點進行圓擬合,然後將擬合後的圓在原影象中顯示出來

10樓:

您這是一口氣三個問題啊。一個一個看吧:

提取影象中的畫素點。您是想手動選取還是根據某種準則來自動選取?

根據離散點擬合圓。這個用霍夫變換或者ransac方法應該都可以解決。

在影象中指定位置顯示指定尺寸的圓。這個最簡單所以關鍵是第一個問題,請您明確。

如何在ecel中利用公式計算出全年級大於80分在各班

修改後的公式 在baid3輸入 sumproduct a 3 a 250 row 2 c 3 c 250 80 然後du向下面復 制公式到zhid12,d3 d12就是10個班級的人數。dao注意此公式要求版班級格式為1,2,3,10等。如果是權1班,2班格式,公式改為 sumproduct a 3...

如何根據matlab擬合的曲線讀出影象中點的座標值

樓主的意思是 已知 上的一條曲線,如何獲取該曲線上點的座標 x,y 下面有段程式,是本人讀曲線座標所寫,看看對樓主是否有幫助 clcclear all im1 imread runx2.jpg 樓主在此替換成自己的 im rgb2gray im1 im im end 1 1,imshow im m,...

excel如何用函式計算出80到90分的人數

1 以excel2010版本為例,如下圖要計算出圖中80到90分的人數 2 首先在c1單元格輸入countif函式,指的是計算某個區域中滿足給定條件的單元格數目 3 這裡輸入公式 countif b b,80 countif b b,90 因為要計算80到90分的人數,有兩個條件,故用了兩次coun...