質問編集履歴

1

文の修正

2021/12/21 07:54

投稿

KZ10
KZ10

スコア3

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 現在、イメージのエッジ検出を行いstrongestを用いて強い点を表示させるプログラムを作りまし。ただその強い点の座標を使用したいのですできません。
5
+ 現在、イメージのエッジ検出を行いstrongestを用いて強い点を表示させるプログラムを作のですが、その点の座標を使う方法わかりません。
6
6
 
7
7
 
8
8
 
@@ -18,11 +18,11 @@
18
18
 
19
19
  [X Y] = strongest;
20
20
 
21
- [kua,xkuc,ykuc,kur] = fit_circle(X,Y);
22
21
 
23
22
 
24
23
 
24
+
25
- このプログラム(問題の部分を抜粋しています)で、fit_circleに座標を入れたいのでどうすればいいでしょうか。Locationで座標は表示できるのですが...
25
+ このプログラム(問題の部分を抜粋しています)で、座標を代数にるにはどうすればいいでしょうか。Locationで座標は表示できるのですが...
26
26
 
27
27
  ```
28
28
 
@@ -37,69 +37,3 @@
37
37
  MATLAB
38
38
 
39
39
  ```
40
-
41
-
42
-
43
- ### 試したこと
44
-
45
-
46
-
47
- ここに問題に対して試したことを記載してください。
48
-
49
-
50
-
51
- ### 補足情報(FW/ツールのバージョンなど)
52
-
53
- % A M-file to fit x and y data to circle
54
-
55
- % x,y are lists of row data of coordinates
56
-
57
- % a : coefficinet of x^2 + y^2 + a(1)*x + a(2)*y + a(3)
58
-
59
- % xc : x center co-ordinate
60
-
61
- % yc : y center co-ordinate
62
-
63
- % r : radius
64
-
65
- function [a,xc,yc,r] = fit_circle(x,y)
66
-
67
- % Build design matrix
68
-
69
- sumxx = sum(x.*x);
70
-
71
- sumyy = sum(y.*y);
72
-
73
- sumxy = sum(x.*y);
74
-
75
- sumx = sum(x);
76
-
77
- sumy = sum(y);
78
-
79
- sumxxx = sum(x.*x.*x);
80
-
81
- sumyyy = sum(y.*y.*y);
82
-
83
- sumxyy = sum(x.*y.*y);
84
-
85
- sumxxy = sum(x.*x.*y);
86
-
87
- D = [ sumxx sumxy sumx; sumxy sumyy sumy; sumx sumy length(x) ]; %最小二乗法の公式の左式
88
-
89
- S = [ -sumxxx-sumxyy; -sumyyy-sumxxy; -sumxx-sumyy ]; %最小二乗法の公式の右式
90
-
91
- % Solve the answer
92
-
93
- a = D \ S; %左除算
94
-
95
- % Calculate cenetr co-ordinate
96
-
97
- xc = -a(1) / 2; %Xの中心座標
98
-
99
- yc = -a(2) / 2; %Yの中心座標
100
-
101
- r = sqrt(xc*xc + yc*yc - a(3));
102
-
103
-
104
-
105
- fit_circleの中身はこうなっています。近似円を算出するプログラムです。