KJMAN678 commited on
Commit
f4c3694
1 Parent(s): eb283e0

first commit

Browse files
Files changed (2) hide show
  1. app.py +114 -0
  2. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import streamlit as st
3
+ import cv2
4
+ import pandas as pd
5
+
6
+ # HSV H(色相)の変更
7
+ def changedH(bgr_img, shift):
8
+ hsvimage = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV_FULL) # BGR->HSV
9
+ hi = hsvimage[:,:,0].astype(np.int32)
10
+ if shift < 0:
11
+ nhi = hi.flatten()
12
+ for px in nhi:
13
+ if px < 0:
14
+ px = 255 - px
15
+ nhi = nhi.reshape(hsvimage.shape[:2])
16
+ hi = nhi.astype(np.uint8)
17
+ chimg = (hi + shift) % 255
18
+ hsvimage[:,:,0] = chimg
19
+ hsv8 = hsvimage.astype(np.uint8)
20
+ return cv2.cvtColor(hsv8,cv2.COLOR_HSV2BGR_FULL) # HSV->BGR
21
+
22
+ # HSV S(彩度),V(明度)の変更
23
+ def changedSV(bgr_img, alpha, beta, color_idx):
24
+ hsvimage = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2HSV_FULL) # BGR->HSV
25
+ hsvf = hsvimage.astype(np.float32)
26
+ hsvf[:,:,color_idx] = np.clip(hsvf[:,:,1] * alpha+beta, 0, 255)
27
+ hsv8 = hsvf.astype(np.uint8)
28
+ return cv2.cvtColor(hsv8,cv2.COLOR_HSV2BGR_FULL)
29
+
30
+ # HSV S(彩度)の変更
31
+ def changedS(bgr_img, alpha, beta):
32
+ return changedSV(bgr_img, alpha, beta, 1)
33
+
34
+ # HSV V(明度)の変更
35
+ def changedV(bgr_img, alpha, beta):
36
+ return changedSV(bgr_img, alpha, beta, 2)
37
+
38
+ def main():
39
+
40
+ st.subheader("RGB値")
41
+ R = st.slider(label='Red',
42
+ min_value=0,
43
+ max_value=255,
44
+ value=100,
45
+ )
46
+ st.write(f'{R}')
47
+
48
+ G = st.slider(label='Green',
49
+ min_value=0,
50
+ max_value=255,
51
+ value=100,
52
+ )
53
+ st.write(f'{G}')
54
+
55
+ B = st.slider(label='Blue',
56
+ min_value=0,
57
+ max_value=255,
58
+ value=100,
59
+ )
60
+ st.write(f'{B}')
61
+
62
+ R_nmp = np.array([R] * 80 * 200).reshape(80, 200).astype(np.uint8)
63
+ G_nmp = np.array([G] * 80 * 200).reshape(80, 200).astype(np.uint8)
64
+ B_nmp = np.array([B] * 80 * 200).reshape(80, 200).astype(np.uint8)
65
+ img_nmp = np.stack([R_nmp, G_nmp, B_nmp], 2)
66
+
67
+ st.image(
68
+ img_nmp,
69
+ width=640,
70
+ caption=f"R:{R} G:{G} B:{B}"
71
+ )
72
+
73
+ # HSV変換
74
+ img_hsv = cv2.cvtColor(img_nmp, cv2.COLOR_RGB2HSV)
75
+
76
+ # HSV値を取得
77
+ H = img_hsv.T[0].flatten().min()
78
+ S = img_hsv.T[1].flatten().min()
79
+ V = img_hsv.T[2].flatten().min()
80
+
81
+ # 表示
82
+ st.subheader("HSV値")
83
+ st.info(f"H:{H} S:{S} V:{V}")
84
+
85
+ # RGBのサンプル
86
+ df = pd.DataFrame(
87
+ [
88
+ ["白", 255, 255, 255],
89
+ ["黄色", 255, 255, 0],
90
+ ["薄い灰色", 192, 192, 192],
91
+ ["水色", 0, 255, 255],
92
+ ["黄緑", 0, 255, 0],
93
+ ["灰色", 128, 128, 128],
94
+ ["黄土色", 128, 128, 0],
95
+ ["濃い桃色", 255, 0, 255],
96
+ ["青緑", 0, 128, 128],
97
+ ["赤", 255, 0, 0],
98
+ ["緑", 0, 128, 0],
99
+ ["紫", 128, 0, 128],
100
+ ["茶色", 128, 0, 0],
101
+ ["青", 0, 0, 255],
102
+ ["紺", 0, 0, 128],
103
+ ["黒", 0, 0, 0],
104
+ ],
105
+ columns = ["色", "R", "G", "B"]
106
+ )
107
+
108
+ st.sidebar.subheader("RGBサンプル")
109
+ st.sidebar.table(df.set_index("色"))
110
+ st.sidebar.markdown('日立HP[JP1/Automatic Job Management System 3 操作ガイド 11.11 RGB値による色の指定](http://itdoc.hitachi.co.jp/manuals/3020/30203S0933/AJSV0206.HTM) より引用')
111
+
112
+
113
+ if __name__ == '__main__':
114
+ main()
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ numpy==1.21.4
2
+ streamlit==1.2.0
3
+ opencv-python==4.5.4.58
4
+ pandas==1.3.4