Skip to content

Instantly share code, notes, and snippets.

@heliy
Created May 6, 2015 02:12
Show Gist options
  • Save heliy/9e8d026ee279f9412d3d to your computer and use it in GitHub Desktop.
Save heliy/9e8d026ee279f9412d3d to your computer and use it in GitHub Desktop.
Exercises --------- -# Try to create the logo of OpenCV using drawing functions available in OpenCV.
import numpy as np
import cv2 #3.0.0-dev
import math
r1 = 70
r2 = 30
ang = 60
d = 170
h = int(d/2*math.sqrt(3))
dot_red = (256,128)
dot_green = (dot_red[0]-d/2, dot_red[1]+h)
dot_blue = (dot_red[0]+d/2, dot_red[1]+h)
# tan = float(dot_red[0]-dot_green[0])/(dot_green[1]-dot_red[0])
# ang = math.atan(tan)/math.pi*180
red = (0, 0, 255)
green = (0, 255, 0)
blue = (255, 0, 0)
black = (0, 0, 0)
full = -1
img = np.zeros((512, 512, 3), np.uint8)
cv2.circle(img, dot_red, r1, red, full)
cv2.circle(img, dot_green, r1, green, full)
cv2.circle(img, dot_blue, r1, blue, full)
cv2.circle(img, dot_red, r2, black, full)
cv2.circle(img, dot_green, r2, black, full)
cv2.circle(img, dot_blue, r2, black, full)
cv2.ellipse(img, dot_red, (r1, r1), ang, 0, ang, black, full)
cv2.ellipse(img, dot_green, (r1, r1), 360-ang, 0, ang, black, full)
cv2.ellipse(img, dot_blue, (r1, r1), 360-2*ang, ang, 0, black, full)
cv2.imwrite("opencv_logo.png", img)
@hungIT1986
Copy link

Hello Heliy!
i try to write your code opencvlogo.py. but i get mistake like this: TypeError: integer argument expected, got float
Please tell me what it is! Thanks a lot

@glen1995
Copy link

thats because the function only accepts interger arguement you just have to modify those 14 and 15 lines as
dot_green = (round(dot_red[0]-d/2), round(dot_red[1]+h))
dot_blue = (round(dot_red[0]+d/2), round(dot_red[1]+h))
Round function rounds the value into integer and the this code runs

@siddarthjha
Copy link

Hello Heliy!
i try to write your code opencvlogo.py. but i get mistake like this: TypeError: integer argument expected, got float
Please tell me what it is! Thanks a lot

dot_green = (dot_red[0]-d//2, dot_red[1]+h)
dot_blue = (dot_red[0]+d//2, dot_red[1]+h)

Modify it with this it will execute

@xjohnxjohn
Copy link

@siddarthjha 'Cause it need integer, then you can modify from this code:
dot_green = (int(dot_red[0]-d/2),int(dot_red[1]+h))
dot_blue = (int(dot_red[0]+d/2), int(dot_red[1]+h))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment