2-2Hsv.py

000: import cv2
001: import numpy as np
002:
003: def __main():
004:
005: img = createImage()
006: cv2.imshow(‘Orignal’, img)
007:
008: # ここで処理を実行する
009: img = getHsv(img)
010:
011: cv2.imshow(‘Final result’, img)
012: cv2.waitKey(0)
013:
014: cv2.destroyAllWindows()
015:
016: def getHsv(img):
017: “””CPUを使用”””
018: # HSVに変換する
019: img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV_FULL) # cv2.COLOR_BGR2HSV_FULLオプションだとH:256階調に対応
020:
021: return img
022:
023: def createImage():
024: “””画像処理用のデータを生成”””
025: width = 600
026: height = 480
027:
028: size = (height, width, 3) # 縦480ピクセル 横640ピクセル 3チャンネル
029: img = np.zeros(size, dtype=np.uint8)
030: rete = 255 / width
031: for h in range(0, height):
032: for w in range(0, width):
033: data = int(w * rete)
034: img[h, w] = [data, data, data]
035:
036: red = np.array([0., 0., 255.])
037: green = np.array([0., 255., 0.])
038: blue = np.array([255., 0., 0.])
039:
040: cyan = np.array([255., 255., 0.])
041: magenta = np.array([255., 0., 255])
042: yellow = np.array([0., 255., 255.])
043:
044: cv2.rectangle(img=img, pt1=(0, 0), pt2=(200, 200), color=red, thickness=-1)
045: cv2.rectangle(img=img, pt1=(200, 0), pt2=(400, 200), color=green, thickness=-1)
046: cv2.rectangle(img=img, pt1=(400, 0), pt2=(600, 200), color=blue, thickness=-1)
047:
048: cv2.rectangle(img=img, pt1=(0, 200), pt2=(200, 400), color=cyan, thickness=-1)
049: cv2.rectangle(img=img, pt1=(200, 200), pt2=(400, 400), color=magenta, thickness=-1)
050: cv2.rectangle(img=img, pt1=(400, 200), pt2=(600, 400), color=yellow, thickness=-1)
051:
052: return img
053:
054: if __name__ == ‘__main__’:
055: print(cv2.__version__)
056:
057: __main()