利用Python Opencv繪製時鐘

2021-10-01 11:12:03 字數 2675 閱讀 7374

import cv2

import math

import datetime

import numpy as np

#*********繪製鐘盤***********#

margin=5

radius=220

center=(center_x,center_y)=(225,225)

img=np.zeros((450,450,3),np.uint8)

img[:]=(255,255,255)

cv2.circle(img,center,radius,(0,0,0),thickness=5)

#********繪製刻度********#

pt1=

for i in range(60):

x1=center_x+(radius-margin)*math.cos(i*6*np.pi/180.0)

y1=center_y+(radius-margin)*math.sin(i*6*np.pi/180.0)

x2=center_x+(radius-15)*math.cos(i*6*np.pi/180.0)

y2=center_y+(radius-15)*math.sin(i*6*np.pi/180.0)

cv2.line(img,pt1[i],(int(x2),int(y2)),(0,0,0),thickness=2)

for i in range(12):

x=center_x+(radius-25)*math.cos(i*30*np.pi/180.0)

y=center_y+(radius-25)*math.sin(i*30*np.pi/180.0)

cv2.line(img,pt1[i*5],(int(x),int(y)),(0,0,0),thickness=5)

num=str(i+3) if i<=9 else str(i-9)

font = cv2.font_hershey_******x

text_x=center_x+(radius-40)*math.cos(i*30*np.pi/180.0)

text_y=center_y+(radius-40)*math.sin(i*30*np.pi/180.0)

cv2.puttext(img, num, (int(text_x)-10, int(text_y)+10), font, 1, (0, 0, 0), 2)#偏移量為10

while(1):

#不斷拷貝表盤圖,才能更新繪製,否則會重疊在一起

temp=np.copy(img)

now_time=datetime.datetime.now()

hour,minute,second=now_time.hour,now_time.minute,now_time.second

#畫秒線,從水平位置0°順時針旋轉

sec_angle=second*6+270 if second<=15 else (second-15)*6

sec_x=center_x+(radius-margin)*math.cos(sec_angle*np.pi/180.0)

sec_y=center_y+(radius-margin)*math.sin(sec_angle*np.pi/180.0)

cv2.line(temp,center,(int(sec_x),int(sec_y)),(0,0,255),2)

#print('sec_angle',sec_angle)

#畫分線

min_angle=minute*6+270 if minute<=15 else (minute-15)*6

min_x=center_x+(radius-35)*math.cos(min_angle*np.pi/180.0)

min_y=center_y+(radius-35)*math.sin(min_angle*np.pi/180.0)

cv2.line(temp,center,(int(min_x),int(min_y)),(0,255,0),8)

#畫時線

python opencv 安裝整理

這兩天比較有空,在公司內想學習一下opencv,又不想安裝vc 所以就那個python看opencv。安裝環境本來很簡單 但是我python是64的 估計也很多 而opencv的安裝要有乙個numpy庫 這個在官網上只有32位的 所以,事情變得複雜起來。網上找了一下,只道有提供64位版的numpy庫...

python opencv 輪廓檢測

輪廓 contours 指的是有相同顏色或者密度,連線所有連續點的一條曲線。檢測輪廓的工作對形狀分析和物體檢測與識別都非常有用。在輪廓檢測之前,首先要對進行二值化或者canny邊緣檢測。在opencv中,尋找的物體是白色的,而背景必須是黑色的,因此預處理時必須保證這一點。import cv2 讀入i...

python opencv 輪廓屬性

import cv2 import numpy as np 高寬比 函式cv2.moments 會給你乙個字典,包含所有矩值 m cv2.moments cnt 這是目標的邊界矩形的寬高比 x,y,w,h cv2.boundingrect cnt aspect ratio float w h ext...