teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

修正したコードを載せました

2021/08/27 12:26

投稿

tkphone343
tkphone343

スコア6

title CHANGED
File without changes
body CHANGED
@@ -85,4 +85,84 @@
85
85
 
86
86
  ### 試したこと
87
87
 
88
- 2回目のtest1-2まで表示されるのですが、test1-3が表示されずに動作を停止してしまいます。
88
+ 2回目のtest1-2まで表示されるのですが、test1-3が表示されずに動作を停止してしまいます。
89
+
90
+ ### 修正したソースコード
91
+ ```
92
+ #include<stdio.h>
93
+ #include <stdlib.h>
94
+ #include"pgmlib.h"
95
+ void hough(int n);
96
+
97
+ int main(void)
98
+ {
99
+ load_image(0, "");
100
+ hough(0);
101
+ return 0;
102
+ }
103
+
104
+ void hough(int n)
105
+ {
106
+ int j, k, l, m, o, p, x, y, sum, i, indexAm, h, Am, aa, bb, h2, aam, indexA, indexB;
107
+ int maxh = 0;
108
+ int minB = 18900;
109
+ int maxB = 0;
110
+ int maxh2 = 0;
111
+ int minbb = 6552;
112
+ int maxbb = 0;
113
+ double A, a, b;
114
+ int arr[40][2583] = {0};
115
+ //int arr2[6552][400] = {0};
116
+
117
+ /*
118
+ arr = (int*)malloc(sizeof(int) * 3780200);
119
+
120
+ for (j = 0; j < l; j++) {
121
+ for (k = 0; k < m; k++) {
122
+ arr[j * m + k] = 0;
123
+ }
124
+ }
125
+ */
126
+
127
+ for (y = 0; y < height[n]; y++) {
128
+ for (x = 0; x < width[n]; x++) {
129
+ if (image[n][x][y] <= 120) {
130
+ for (A = -1.0; A <= 1.0; A += 0.05) {
131
+ indexA = A * 20 + 20;
132
+ indexB = -y * indexA + x + 2520;
133
+ arr[indexA][indexB]++;
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ for (indexA = 0; indexA <= 40; indexA++) {
140
+ sum = 0;
141
+ i = 0;
142
+
143
+ for (indexB = 0; indexB <= 2583; indexB++) {
144
+ if (arr[indexA][indexB] >= 1) {
145
+ sum += arr[indexA][indexB] * arr[indexA][indexB];
146
+ i++;
147
+ }
148
+ }
149
+
150
+ h = sum / i;
151
+
152
+ if (h > maxh) {
153
+ maxh = h;
154
+ indexAm = indexA;
155
+ }
156
+ }
157
+
158
+ for (indexB = 0; indexB <= 2583; indexB++) {
159
+ if (arr[indexAm][indexB] >= 1) {
160
+ if (indexB <= minB) {
161
+ minB = indexB;
162
+ }
163
+ if (indexB >= maxB) {
164
+ maxB = indexB;
165
+ }
166
+ }
167
+ }
168
+ ```