質問編集履歴
1
一連の流れを記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -68,26 +68,20 @@
|
|
68
68
|
}
|
69
69
|
```
|
70
70
|
|
71
|
-
|
72
|
-
#
|
71
|
+
#一連の流れ
|
73
|
-
###インクルード
|
74
72
|
```C
|
75
73
|
#include "pch.h"
|
76
74
|
#include "stdio.h"
|
77
75
|
#include "stdlib.h"
|
78
76
|
#include <string.h>
|
79
77
|
#include <iostream>
|
80
|
-
|
78
|
+
|
81
|
-
###配列を宣言
|
82
|
-
```C
|
83
79
|
//画像サイズを決める
|
84
80
|
#define X_SIZE 640
|
85
|
-
|
86
81
|
#define Y_SIZE 480
|
87
82
|
|
88
83
|
//閾値の最小値
|
89
84
|
#define LOW 0
|
90
|
-
|
91
85
|
//閾値の最大値
|
92
86
|
#define HIGH 255
|
93
87
|
|
@@ -102,24 +96,8 @@
|
|
102
96
|
|
103
97
|
//モノクロ画像の配列を宣言する
|
104
98
|
unsigned char get_img[Y_SIZE][X_SIZE];
|
105
|
-
```
|
106
|
-
###プロトタイプ宣言
|
107
|
-
```C
|
108
|
-
//rgb画像を読み込むための関数
|
109
|
-
void Read_rgbimage(char *Read_filepath, unsigned char r[Y_SIZE][X_SIZE], unsigned char g[Y_SIZE][X_SIZE], unsigned char b[Y_SIZE][X_SIZE]);
|
110
99
|
|
111
|
-
//RGB画像から特定の色のみを抽出するための関数
|
112
|
-
int Color(unsigned char r_in[Y_SIZE][X_SIZE], unsigned char g_in[Y_SIZE][X_SIZE], unsigned char b_in[Y_SIZE][X_SIZE], unsigned char r_out[Y_SIZE][X_SIZE], unsigned char g_out[Y_SIZE][X_SIZE], unsigned char b_out[Y_SIZE][X_SIZE], int rth_min, int rth_max, int gth_min, int gth_max, int bth_min, int bth_max);
|
113
100
|
|
114
|
-
//グレイスケールに変換するための関数
|
115
|
-
void Gray(unsigned char gray_img[Y_SIZE][X_SIZE], unsigned char r[Y_SIZE][X_SIZE], unsigned char g[Y_SIZE][X_SIZE], unsigned char b[Y_SIZE][X_SIZE]);
|
116
|
-
|
117
|
-
//画像を保存するための関数
|
118
|
-
void Save_img(char *Save_filepath, unsigned char img[Y_SIZE][X_SIZE]);
|
119
|
-
```
|
120
|
-
###メインとなる関数
|
121
|
-
```C
|
122
|
-
//メインとなる関数
|
123
101
|
void main(void)
|
124
102
|
{
|
125
103
|
//画像を読み込む
|
@@ -143,11 +121,9 @@
|
|
143
121
|
Save_img(save_filepath, get_img);
|
144
122
|
|
145
123
|
break;
|
146
|
-
}
|
147
|
-
```
|
148
124
|
|
149
|
-
|
125
|
+
|
150
|
-
|
126
|
+
|
151
127
|
//RGBカラー画像を読み込むための関数
|
152
128
|
void Read_rgbimage(char *Read_filepath, unsigned char r[Y_SIZE][X_SIZE], unsigned char g[Y_SIZE][X_SIZE], unsigned char b[Y_SIZE][X_SIZE])
|
153
129
|
{
|
@@ -184,9 +160,9 @@
|
|
184
160
|
fclose(r_filepath);
|
185
161
|
|
186
162
|
}
|
187
|
-
|
163
|
+
|
188
|
-
|
164
|
+
|
189
|
-
|
165
|
+
|
190
166
|
//RGB画像から特定の色のみを抽出するための関数
|
191
167
|
int Color(unsigned char r_in[Y_SIZE][X_SIZE], unsigned char g_in[Y_SIZE][X_SIZE], unsigned char b_in[Y_SIZE][X_SIZE], unsigned char r_out[Y_SIZE][X_SIZE], unsigned char g_out[Y_SIZE][X_SIZE], unsigned char b_out[Y_SIZE][X_SIZE], int rth_min, int rth_max, int gth_min, int gth_max, int bth_min, int bth_max)
|
192
168
|
{
|
@@ -244,9 +220,8 @@
|
|
244
220
|
return r_out[j][i], g_out[j][i], b_out[j][i];
|
245
221
|
}
|
246
222
|
|
247
|
-
|
223
|
+
|
248
|
-
|
224
|
+
|
249
|
-
```C
|
250
225
|
//グレイ画像に変換するための関数
|
251
226
|
void Gray(unsigned char gray_img[Y_SIZE][X_SIZE], unsigned char r[Y_SIZE][X_SIZE], unsigned char g[Y_SIZE][X_SIZE], unsigned char b[Y_SIZE][X_SIZE])
|
252
227
|
{
|
@@ -261,9 +236,8 @@
|
|
261
236
|
}
|
262
237
|
}
|
263
238
|
}
|
264
|
-
|
239
|
+
|
265
|
-
|
240
|
+
|
266
|
-
```C
|
267
241
|
//画像を保存するための関数
|
268
242
|
void Save_img(char *Save_filepath, unsigned char img[Y_SIZE][X_SIZE])
|
269
243
|
{
|
@@ -299,5 +273,7 @@
|
|
299
273
|
|
300
274
|
}
|
301
275
|
```
|
276
|
+
|
277
|
+
|
302
278
|
#参考資料
|
303
279
|
[画像内の特定の色を抽出するサンプルコード](https://pokosho.com/t/image/9/)
|