Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1314:kanten_erkennen_neu.py

kanten_erkennen_neu.py

## Systemmodule importieren 
 
import cv2
import numpy as np
import scipy.signal as sig
import scipy
from scipy import misc
from scipy import ndimage
import pickle
 
## Eigene Module importieren
 
from kontouren import *
from bildoperationen import *
from bewegeturtle import *
 
## Kamera öffnen
 
capture= cv2.VideoCapture(0)  
res, bild=capture.read()
 
if res:
	print bild.shape
 
	bild_original=bild.copy()
 
	bild_grau=cv2.cvtColor(bild,cv2.cv.CV_BGR2GRAY)
	bild_kopie=bild_grau.copy()/255.
	zeilen, spalten=bild_grau.shape
	print "Das Bild hat %s Zeilen und %s Spalten"% (zeilen,spalten)
 
	## Allerlei Bilder berechnen
 
	bild_neu3 =glaetten(bild_kopie,9)
	bild_neu=glaetten(bild_kopie,5)
	bild_neu1=laplace(bild_neu)
	bild_neu4=glaetten(bild_neu3,5)
	bild_neu2 =laplace(bild_kopie)
	bild_zweimalentrauscht=glaetten(bild_neu1,5)
	bild_zweimalgefiltert=laplace(bild_zweimalentrauscht)
 
        ##  Die folgende Passage ist von S.B., ausprobiert.
 
	bild_geglaettet=glaetten(bild_kopie,3)
	bild_grad=gradient(bild_geglaettet)
	bild_sw=schwarzweiss(bild_grad,40./255.)
	bild_grad_eroded=ndimage.morphology.binary_erosion(bild_sw,\
	structure=np.array([[0,1,0],[1,1,1],[0,1,0]]))
 
	# Neu: Aufruf der Kantenparametrisierung, einzeichnen der gefundenen Kontouren in 
	# das Bild bild
 
	kontouren=parametrisiere_kanten(bild_grad_eroded,40./255.,mindestlaenge=40,anzahl_versuche=30000)
 
	for kontour in kontouren:
		cv2.polylines(bild,np.int32([np.array(kontour)[:,::-1]]),False,(0,0,255))
 
	#bildkopie2=schwarzweiss(bild_zweimalentrauscht *255, 100)
	#bildkopie3=schwarzweiss(bild_neu4 *255, 95.)
 
	## Allerlei Bilder anzeigen:
 
	cv2.imshow("Bild mit Kontouren", bild)
	cv2.imshow("Graubild",bild_grau)
	cv2.imshow("stark entrauscht",bild_neu3)
	cv2.imshow("entrauscht",bild_neu)
	cv2.imshow("1.Faltung_mit_starkem_Entrauschen",bild_neu1)
	cv2.imshow("1.Faltung_mit_Entrauschen",bild_neu4)
	cv2.imshow("1.Faltung_ohne_Entrauschen",bild_neu2)
	cv2.imshow("einmalentrauscht einmal gefaltet einmal entrauscht",bild_zweimalentrauscht)
	cv2.imshow("zweimalgefiltert", bild_zweimalgefiltert)
	#cv2.imshow("schwarzweiss1",bildkopie2)
	#cv2.imshow("schwarzweis_stark",bildkopie3)
	#cv2.imshow("schwarzweiss2/entrauscht",Experi)
 
	cv2.waitKey(0)
 
	#####   Neu: Aufruf der Funktion, die die Turtle auf dem Bild laufen lässt längs
	##### gefundenen Kanten
 
	bewege_turtle_auf_bild(bild_original,kontouren)
 
 
	#while True:
	#	c=cv2.waitKey(33)
	#	if c=='q':
	#		break
else: 
	print "Konnte Kamera nicht öffnen!"
ws1314/kanten_erkennen_neu.py.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)