Created
May 6, 2015 02:12
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
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
@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
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