質問編集履歴
1
質問の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-

|
1
|
+
](https://ddjkaamml8q8x.cloudfront.net/questions/2022-11-30/7f31450e-3a65-48d3-bd10-f1123cc0713b.jpeg)
|
3
2
|
### 前提
|
4
3
|
素人なのでご教授いただければ幸いです。
|
5
4
|
Open-CVで色の割合を求めるシステムをつくっている。
|
@@ -9,28 +8,23 @@
|
|
9
8
|
紅葉を定点観測して得た画像を分析して紅葉日と落葉日を判断させたい。その中で今回、撮影した画像のなかの色の割合を出したいと考えています。
|
10
9
|
|
11
10
|
### 発生している問題
|
12
|
-
収集した画像の中で緑から黄色の紅葉に変わるのを認識するため色の指定をしたかったが0%となってしまう。
|
13
|
-
ぼやけてはいるが左の木と右の木の一部は黄色に変わっているためそこを認識したい。一部変わっているのをわかっているのは目視で確認したためである。
|
14
|
-
hsv_min = np.array([ 47, 255, 173])
|
15
|
-
hsv_max = np.array([0, 255, 255])
|
16
|
-
|
11
|
+
紅葉と判定している部分が明らかに35%を超えているように感じているが35%と出ており、おかしい気がする。
|
17
|
-
|
18
12
|
|
19
13
|
### 該当のソースコード
|
20
14
|
```
|
15
|
+
|
21
16
|
import numpy as np
|
22
17
|
import cv2
|
23
18
|
import collections
|
24
19
|
import pandas as pd
|
25
20
|
from matplotlib import pyplot as plt
|
26
21
|
|
27
|
-
img_bgr = cv2.imread('
|
22
|
+
img_bgr = cv2.imread('IMG_7170.jpg', 6)
|
28
23
|
for i in range(int(hit/2)):img_bgr[i] = img_bgr[i] / 2
|
29
24
|
img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)
|
30
25
|
|
31
|
-
hsv_min = np.array([
|
26
|
+
hsv_min = np.array([ 20, 64, 0])
|
32
|
-
hsv_max = np.array([0, 255, 255])
|
27
|
+
hsv_max = np.array([ 90, 255, 255])
|
33
|
-
|
34
28
|
mask = cv2.inRange(img_hsv, hsv_min, hsv_max)
|
35
29
|
plt.imshow(mask)
|
36
30
|
print("Rust ratio is :", sum(mask) / 255 / hit / wid * 100, '%')
|
@@ -40,6 +34,7 @@
|
|
40
34
|
|
41
35
|
### 試したこと
|
42
36
|
|
43
|
-
|
37
|
+
他の画像でやってみたが他の画像だとそれ相応の値が出ていると感じている。
|
44
38
|
|
45
39
|
|
40
|
+
|