=====Dépôt vers Moodle===== lien vers le cours moodle pour déposer le projet: https://moodle.iut-tlse3.fr/mod/assign/view.php?id=267430 =====Installation des outils===== Installation version portable à l'IUT https://openscad.org/downloads.html version 64bits zip: https://files.openscad.org/OpenSCAD-2021.01-x86-64.zip notice openscad: https://files.openscad.org/documentation/manual/OpenSCAD_User_Manual.pdf Openscad en ligne de commande: (lancer openscad avec l'option -h ) https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Using_OpenSCAD_in_a_command_line_environment pour déterminer si opencv est installé sur les machine pip show opencv-python Location doit être en c:\Program.... protzdefaut=95; protz=protzdefaut; rotate([0,0,protz]) cube([1000,1000,1],center=true); rem D:\OpenSCAD-2021.01-x86-64\openscad-2021.01\openscad.exe -h D:\OpenSCAD-2021.01-x86-64\openscad-2021.01\openscad.exe -o image.png --imgsize=1024,768 --projection=p --camera=0,0,3000,0,0,0 scene.scad import os print("saevision") for i in range(0,180,4): #chaine="D:\OpenSCAD-2021.01-x86-64\openscad-2021.01\openscad.exe -o image\image.png -D protz=45 --imgsize=1024,768 --projection=p --camera=0,0,3000,0,0,0 scene.scad" chaine="D:\OpenSCAD-2021.01-x86-64\openscad-2021.01\openscad.exe -o image\image"+str(i)+".png -D protz="+str(i)+" --imgsize=1024,768 --projection=p --camera=0,0,3000,0,0,0 scene.scad" print(chaine) os.system(chaine) #avec génération du nom de fichier sur nombre de digits maitrisé: import os for i,protz in enumerate(range(0,180,10)): numeroimage='{0:03d}'.format(i) chaine="D:\OpenSCAD-2021.01-x86-64\openscad-2021.01\openscad.exe -o images\image"+numeroimage+".png --imgsize=1024,768 --camera=0,0,5000,0,0,0 --projection=p -D protz="+str(protz)+" scene.scad" print(chaine) os.system(chaine) formatage de chaine en python: https://docs.python.org/fr/3.5/library/string.html import os from pathlib import Path print("sae vision") for i in range (0,180,4): ''' chaine=f"C:/Users/Maxime/Documents/openscad-2021.01/openscad.exe -o image/image{i}.png -D protz={i} --imgsize=1024,768 --projection=p --camera=0,0,3000,0,0,0 scene.scad" chaine= str(os.path.join(Path.home(), "Documents")) chaine=os.path.join(chaine,"openscad-2021.01") chaine=os.path.join(chaine,"openscad.exe") print(chaine) ''' #si ajout d'openscad au path via SystemPropertiesAdvanced.exe chaine=f"openscad.exe -o image/image{i}.png -D protz={i} --imgsize=1024,768 --projection=p --camera=0,0,3000,0,0,0 scene.scad" print(chaine) os.system(chaine) ====Ajout de openscad au path pour vos PC personels==== lancer SystemPropertiesAdvanced.exe et cliquer sur variable d'environnement puis 'path' et ajouter le chemin complet du fichier openscad.exe module champ_de_vision (){ //Valeur choisie arbitrairement color("FireBrick",0.2) hull(){ translate([400,100,250]) cube([169,169,1]); translate([650,500,1150]) cube([5,5,0.2]); }} import os import numpy as np import cv2 import math print("SAE Vision") for i in range(0, 6000, 1000): #chaine = f"C:/Users/victo/Desktop/openscad-2021.01/openscad.exe -o Image/image.png --imgsize=1024,768 -0 protz={str(i)} scene.scad" #chaine = f'"C:/Users/victo/Desktop/openscad-2021.01/openscad.exe" -o Image/image{str(i)}.png --imgsize=1024,768 scene.scad --camera=0,0,3000,0,0,0 --projection p -D protzdefault={str(i)}' filename=f"Image/image_Bouchon{str(i)}.png" chaine = f'"C:/Users/victo/Desktop/openscad-2021.01/openscad.exe" -o {filename} --imgsize=1024,768 cage.scad --camera=50000,0,100000,0,0,0 --projection p -D transY={str(i)}' print(chaine) os.system(chaine) img = cv2.imread(filename) cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() ====Exemples==== Exemple d'image fournie par une caméra réelle: {{https://bvdp.inetdoc.net/files/iut/tp_lpro_vision/imabouchon1.jpg}} ====Homographie==== https://docs.opencv.org/4.x/da/d54/group__imgproc__transform.html