Python Forum
for loop problem with opencv
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
for loop problem with opencv
#1
import cv2
import numpy as np
from statistics import mean
f = []
video = cv2.VideoCapture(0)
def cam():
    ret, frame = video.read()
    for i in range(100,500,150):
        for j in range(100,500,150):
            cv2.circle (frame, (j,i), 10, (0,0,0), 1)
    cv2.imshow('retour cam', frame)
    return frame
 
def screen():
    cv2.imwrite('C:\\Dev\\prog\\3\\image\\a.jpg' , cam())
    img = cv2.imread('C:\\Dev\\prog\\3\\image\\a.jpg',-1)
    cv2.imshow('image', img)
    return img
 
def reg(x,y,cadre,imga):
    mean_0 = []
    mean_1 = []
    mean_2 = []
    l_t_0 = []
    l_t_1 = []
    l_t_2 = []
    print('h')
    for a in range(3):
        print('j')
        print(cadre)
        print(x)
        print(y)
        for i in range(x - cadre, y + cadre + 1):
            print('k')
            for j in range(x - cadre, y + cadre + 1):
                point = (i,j)
                print(point)
                print(imga[point])
                l_t_0.append(imga[point][0])
                l_t_1.append(imga[point][1])
                l_t_2.append(imga[point][2])
                print('ajout fait')
    print('done')
    print(l_t_0)
    print(l_t_1)
    print(l_t_2)
def calibrage(tolérance):
    o = 0
    print('tour : ',o)
    o +=1
    q = reg(100,100,5,screen())
    print('tour : ',o)
    r = reg(250,100,5,screen())
while 1:
    cam()
    key = cv2.waitKey(1)
    if key == ord('q'):
        break
    if key == ord('s'):
        calibrage(30)
 
 
video.release()
cv2.destroyAllWindows()
Bonjour à tous,

j'ai un problème avec mon code python que je ne comprend pas.

Grossissement, mon code affiche un retour caméra avec opencv. Je lui demande après de prendre des photos de ce retour puis de les analyser. Une fonction '' reg() " génère un cadre de point autour d'un point pris en entré par ses coordonnées x,y et 'cadre'pour la taille du cadre de point généré. Pour chaque cadre de point, la fonction va faire une moyenne des valeurs BVR et les return pour les stocker dans des variables, ici nommées q et r, ce qui représente deux cadres. Les nombreux "print" sont juste là pour, en quelque sorte, débugger et voir où vas et où ne vas pas le programme. Le premier appel de fonction "reg" fonctionne très bien (stocké dans "q"), le output m'affiche que le programme est rentré dans toutes les boucles FOR en m'affichant h, j, les trois valeurs de mes variables locales, k, les différentes générations de points avec leurs coordonnées et leurs valeurs BVR et enfin, les listes remplies par les boucles FOR précédentes. Cependant quand je rappelle la fonction avec des valeurs différentes de point de départ pour une nouvelle génération de cadre et de nouvelles analyses, la fonction reg ne rentre pas dans la première boucle FOR et ne m'affiche que h ,j, mes trois valeurs de variables locales et les listes vides car non remplies par les boucles précédentes. C’est la première fois que quelque chose d'aussi contre-intuitif m'arrive. Au fait, c'est mon premier message sur ce forum, n'hésitez donc à critiquer sa rédaction et merci d'avance pour vos aides
Reply


Messages In This Thread
for loop problem with opencv - by Miradox - Dec-23-2018, 07:21 PM
RE: for loop problem with opencv - by stullis - Dec-23-2018, 10:39 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  while loop problem fid 2 2,262 Jun-19-2020, 07:21 PM
Last Post: fid
  problem on for-if loop alrm31015 1 2,190 Aug-21-2018, 05:48 PM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020