我一直在試圖找到圖像中的拋物線。爲了開始的目的,我用白色背景上的黑色拋物線拍攝了一張圖片。然後,我通過在matlab中查找並繪製拋物線
[yi xi] = find(im<10); % im is the image with black parabola and white background
後,我隨意拿了3分從收集和使用使用符號工具箱求解拋物線方程中使用find命令在圖像上的黑色像素
syms x y;
%solve them for the parabola equation
A = [ x^2 x y 1 ;x0^2 x0 y0 1; x1^2 x1 y1 1; x2^2 x2 y2 1];
其中
%(X0,Y0)=(104137)
%(X1,Y1)=(244161)
%(X2,Y2)=(300229)
S = solve(det(A),y);
然後我得到的coeffcients A,B,C作爲
A = 0.0100
B = - 1.6800
c = 254.1900
其中a,b和c是
a*x^2 + b*x + c = y;
既然現在我已經得到了公式我通過將係數繪製拋物線值 並採取
xx = 1:300;
yy = a*xx.^2 + b*xx +c ;
然後我繪製的拋物線圖像爲
plot(xx,yy,'-');
爲確認我已採取正確的分數,我還繪製了選定的點o在圖像中,它們完全躺在圖像中的拋物線上。所以這不是問題。
的問題是:
- 我圖(藍色)不在上的圖像(黑色)的拋物線的拋物線。
當我把x座標的值放在上面的公式中。 y的值與y座標不同。
爲例如:(104137)
0.0100 * 104 * 104 * -1.68 104 + 254.19 = 108.16 - 174.72 + 254.19 = 187.63 而它應該是
我的拋物線是錯誤的。任何幫助將不勝感激。圖像是
你不明白你在問什麼,特別是沒有告訴你用什麼來產生拋物線(即我們如何重新生成它)以及你如何構建圖像(imshow,plot,...) –
I我問爲什麼藍色拋物線不在黑色拋物線上。 *點是我用來生成係數(a,b,c)的點。黑色拋物線是原始圖像。藍色拋物線就是我用上面給出的第一個等式繪製的。通過放置(a,b,c)來計算y值,並且x值取自1到圖像中列的數量。所以x = 1:300,y = a * x^2 + b * x + c。繪圖是陰謀(xx,yy,' - ') – t0mkaka
我認爲在計算係數時存在一些問題。請更新問題幷包含一些代碼。 (理想情況下,提供三個點的座標和代碼) –