=====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