Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Blue square not showing oh screen

Hello folk. I just started using opencv--python.

Intially I typed in some code found here.

link text

But when I typed in the code to my windows 7 64 bit computer and ran it. After a few syntax errors and typos on my part it ran just fine. I dectected the web camera that I have plugged in and it displayed the cameras video in a window. But I do not get that blue square that says it has detected my face. I am using a celron 2200 mhz with 2gb of ram so its not the fastest computer . Is it just that my computer is slow or is there something wrong with the code?

Blue square not showing oh screen

Hello folk. I just started using opencv--python.

Intially I typed in some code found here.

link text

But when I typed in the code to my windows 7 64 bit computer and ran it. After a few syntax errors and typos on my part it ran just fine. I dectected the web camera that I have plugged in and it displayed the cameras video in a window. But I do not get that blue square that says it has detected my face. I am using a celron 2200 mhz with 2gb of ram so its not the fastest computer . Is it just that my computer is slow or is there something wrong with the code?

Ok here is the code. It was in the youtube video on the link that I posted,

enter code here# ----------------------------------------

image_viewer2.py

#

Created 03-20-2010

#

Author: Mike Driscoll

----------------------------------------

import glob import os import wx from wx.lib.pubsub import Publisher

#

class ViewerPanel(wx.Panel): """"""

#----------------------------------------------------------------------
def __init__(self, parent):
    """Constructor"""
    wx.Panel.__init__(self, parent)

    width, height = wx.DisplaySize()
    self.picPaths = []
    self.currentPicture = 0
    self.totalPictures = 0
    self.photoMaxSize = height - 200
    Publisher().subscribe(self.updateImages, ("update images"))

    self.slideTimer = wx.Timer(None)
    self.slideTimer.Bind(wx.EVT_TIMER, self.update)

    self.layout()

#----------------------------------------------------------------------
def layout(self):
    """
    Layout the widgets on the panel
    """

    self.mainSizer = wx.BoxSizer(wx.VERTICAL)
    btnSizer = wx.BoxSizer(wx.HORIZONTAL)

    img = wx.EmptyImage(self.photoMaxSize,self.photoMaxSize)
    self.imageCtrl = wx.StaticBitmap(self, wx.ID_ANY,
                                     wx.BitmapFromImage(img))
    self.mainSizer.Add(self.imageCtrl, 0, wx.ALL|wx.CENTER, 5)
    self.imageLabel = wx.StaticText(self, label="")
    self.mainSizer.Add(self.imageLabel, 0, wx.ALL|wx.CENTER, 5)

    btnData = [("Previous", btnSizer, self.onPrevious),
               ("Slide Show", btnSizer, self.onSlideShow),
               ("Next", btnSizer, self.onNext)]
    for data in btnData:
        label, sizer, handler = data
        self.btnBuilder(label, sizer, handler)

    self.mainSizer.Add(btnSizer, 0, wx.CENTER)
    self.SetSizer(self.mainSizer)

#----------------------------------------------------------------------
def btnBuilder(self, label, sizer, handler):
    """
    Builds a button, binds it to an event handler and adds it to a sizer
    """
    btn = wx.Button(self, label=label)
    btn.Bind(wx.EVT_BUTTON, handler)
    sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)

#----------------------------------------------------------------------
def loadImage(self, image):
    """"""
    image_name = os.path.basename(image)
    img = wx.Image(image, wx.BITMAP_TYPE_ANY)
    # scale the image, preserving the aspect ratio
    W = img.GetWidth()
    H = img.GetHeight()
    if W > H:
        NewW = self.photoMaxSize
        NewH = self.photoMaxSize * H / W
    else:
        NewH = self.photoMaxSize
        NewW = self.photoMaxSize * W / H
    img = img.Scale(NewW,NewH)

    self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
    self.imageLabel.SetLabel(image_name)
    self.Refresh()
    Publisher().sendMessage("resize", "")

#----------------------------------------------------------------------
def nextPicture(self):
    """
    Loads the next picture in the directory
    """
    if self.currentPicture == self.totalPictures-1:
        self.currentPicture = 0
    else:
        self.currentPicture += 1
    self.loadImage(self.picPaths[self.currentPicture])

#----------------------------------------------------------------------
def previousPicture(self):
    """
    Displays the previous picture in the directory
    """
    if self.currentPicture == 0:
        self.currentPicture = self.totalPictures - 1
    else:
        self.currentPicture -= 1
    self.loadImage(self.picPaths[self.currentPicture])

#----------------------------------------------------------------------
def update(self, event):
    """
    Called when the slideTimer's timer event fires. Loads the next
    picture from the folder by calling th nextPicture method
    """
    self.nextPicture()

#----------------------------------------------------------------------
def updateImages(self, msg):
    """
    Updates the picPaths list to contain the current folder's images
    """
    self.picPaths = msg.data
    self.totalPictures = len(self.picPaths)
    self.loadImage(self.picPaths[0])

#----------------------------------------------------------------------
def onNext(self, event):
    """
    Calls the nextPicture method
    """
    self.nextPicture()

#----------------------------------------------------------------------
def onPrevious(self, event):
    """
    Calls the previousPicture method
    """
    self.previousPicture()

#----------------------------------------------------------------------
def onSlideShow(self, event):
    """
    Starts and stops the slideshow
    """
    btn = event.GetEventObject()
    label = btn.GetLabel()
    if label == "Slide Show":
        self.slideTimer.Start(3000)
        btn.SetLabel("Stop")
    else:
        self.slideTimer.Stop()
        btn.SetLabel("Slide Show")
#

class ViewerFrame(wx.Frame): """"""

#----------------------------------------------------------------------
def __init__(self):
    """Constructor"""
    wx.Frame.__init__(self, None, title="Image Viewer")
    panel = ViewerPanel(self)
    self.folderPath = ""
    Publisher().subscribe(self.resizeFrame, ("resize"))

    self.initToolbar()
    self.sizer = wx.BoxSizer(wx.VERTICAL)
    self.sizer.Add(panel, 1, wx.EXPAND)
    self.SetSizer(self.sizer)

    self.Show()
    self.sizer.Fit(self)
    self.Center()


#----------------------------------------------------------------------
def initToolbar(self):
    """
    Initialize the toolbar
    """
    self.toolbar = self.CreateToolBar()
    self.toolbar.SetToolBitmapSize((16,16))

    open_ico = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, (16,16))
    openTool = self.toolbar.AddSimpleTool(wx.ID_ANY, open_ico, "Open", "Open an Image Directory")
    self.Bind(wx.EVT_MENU, self.onOpenDirectory, openTool)

    self.toolbar.Realize()

#----------------------------------------------------------------------
def onOpenDirectory(self, event):
    """
    Opens a DirDialog to allow the user to open a folder with pictures
    """
    dlg = wx.DirDialog(self, "Choose a directory",
                       style=wx.DD_DEFAULT_STYLE)

    if dlg.ShowModal() == wx.ID_OK:
        self.folderPath = dlg.GetPath()
        print self.folderPath
        picPaths = glob.glob(self.folderPath + "\\*.jpg")
        print picPaths
    Publisher().sendMessage("update images", picPaths)

#----------------------------------------------------------------------
def resizeFrame(self, msg):
    """"""
    self.sizer.Fit(self)

----------------------------------------------------------------------

if __name__ == "__main__": app = wx.App() frame = ViewerFrame() app.MainLoop()

Blue square not showing oh screen

Hello folk. I just started using opencv--python.

Intially I typed in some code found here.

link text

But when I typed in the code to my windows 7 64 bit computer and ran it. After a few syntax errors and typos on my part it ran just fine. I dectected the web camera that I have plugged in and it displayed the cameras video in a window. But I do not get that blue square that says it has detected my face. I am using a celron 2200 mhz with 2gb of ram so its not the fastest computer . Is it just that my computer is slow or is there something wrong with the code?

Ok here is the code. It was in the youtube video on the link that I posted,

enter code here# ----------------------------------------
here#-------------------------------------------------------------------------------

image_viewer2.pyName: OpenCV Example of Face Detection from Facebook

Purpose:

#

Created 03-20-2010Author: DD

#

Author: Mike Driscoll

----------------------------------------Created: 12/01/2015

Copyright: (c) DD 2015

Licence: <your licence="">

-------------------------------------------------------------------------------

Facebook.com/RaspberryVi

import glob numpy as np import os import wx from wx.lib.pubsub import Publisher

#

class ViewerPanel(wx.Panel): """"""cv2

some comment i a foreign language which I cannot understand. I will put it

thru Altavista later

face_cascade = cv2.CascadeClassifier('haarscascade_frontalface_default.xml')

video_capture = cv2.VideoCapture(0)

while True: ret, frame = video_capture.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #capture test with image. #img = cv2.imread("wyld2.jpg") # gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#----------------------------------------------------------------------
def __init__(self, parent):
    """Constructor"""
    wx.Panel.__init__(self, parent)

    width, height = wx.DisplaySize()
    self.picPaths = []
    self.currentPicture = 0
    self.totalPictures = 0
    self.photoMaxSize = height - 200
    Publisher().subscribe(self.updateImages, ("update images"))

    self.slideTimer = wx.Timer(None)
    self.slideTimer.Bind(wx.EVT_TIMER, self.update)

    self.layout()

#----------------------------------------------------------------------
def layout(self):
    """
    Layout the widgets on the panel
    """

    self.mainSizer = wx.BoxSizer(wx.VERTICAL)
    btnSizer = wx.BoxSizer(wx.HORIZONTAL)

    img = wx.EmptyImage(self.photoMaxSize,self.photoMaxSize)
    self.imageCtrl = wx.StaticBitmap(self, wx.ID_ANY,
                                     wx.BitmapFromImage(img))
    self.mainSizer.Add(self.imageCtrl, 0, wx.ALL|wx.CENTER, 5)
    self.imageLabel = wx.StaticText(self, label="")
    self.mainSizer.Add(self.imageLabel, 0, wx.ALL|wx.CENTER, 5)

    btnData = [("Previous", btnSizer, self.onPrevious),
               ("Slide Show", btnSizer, self.onSlideShow),
               ("Next", btnSizer, self.onNext)]
    for data in btnData:
        label, sizer, handler = data
        self.btnBuilder(label, sizer, handler)

    self.mainSizer.Add(btnSizer, 0, wx.CENTER)
    self.SetSizer(self.mainSizer)

#----------------------------------------------------------------------
def btnBuilder(self, label, sizer, handler):
    """
    Builds a button, binds it to an event handler and adds it to a sizer
    """
    btn = wx.Button(self, label=label)
    btn.Bind(wx.EVT_BUTTON, handler)
    sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)

#----------------------------------------------------------------------
def loadImage(self, image):
    """"""
    image_name = os.path.basename(image)
    img = wx.Image(image, wx.BITMAP_TYPE_ANY)
    # scale the image, preserving the aspect ratio
    W = img.GetWidth()
    H = img.GetHeight()
    faces = face_cascade.detectMultiScale(gray,1.3,5)
for(x,y,w,h) in faces:
    cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)




cv2.imshow('video', frame)
#some more foreign comments
if W > H:
        NewW = self.photoMaxSize
        NewH = self.photoMaxSize * H / W
    else:
        NewH = self.photoMaxSize
        NewW = self.photoMaxSize * W / H
    img = img.Scale(NewW,NewH)

    self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
    self.imageLabel.SetLabel(image_name)
    self.Refresh()
    Publisher().sendMessage("resize", "")

#----------------------------------------------------------------------
def nextPicture(self):
    """
    Loads the next picture in the directory
    """
    if self.currentPicture cv2.waitKey(1) & 0xFF == self.totalPictures-1:
        self.currentPicture = 0
    else:
        self.currentPicture += 1
    self.loadImage(self.picPaths[self.currentPicture])

#----------------------------------------------------------------------
def previousPicture(self):
    """
    Displays the previous picture in the directory
    """
    if self.currentPicture == 0:
        self.currentPicture = self.totalPictures - 1
    else:
        self.currentPicture -= 1
    self.loadImage(self.picPaths[self.currentPicture])

#----------------------------------------------------------------------
def update(self, event):
    """
    Called when the slideTimer's timer event fires. Loads the next
    picture from the folder by calling th nextPicture method
    """
    self.nextPicture()

#----------------------------------------------------------------------
def updateImages(self, msg):
    """
    Updates the picPaths list to contain the current folder's images
    """
    self.picPaths = msg.data
    self.totalPictures = len(self.picPaths)
    self.loadImage(self.picPaths[0])

#----------------------------------------------------------------------
def onNext(self, event):
    """
    Calls the nextPicture method
    """
    self.nextPicture()

#----------------------------------------------------------------------
def onPrevious(self, event):
    """
    Calls the previousPicture method
    """
    self.previousPicture()

#----------------------------------------------------------------------
def onSlideShow(self, event):
    """
    Starts and stops the slideshow
    """
    btn = event.GetEventObject()
    label = btn.GetLabel()
    if label == "Slide Show":
        self.slideTimer.Start(3000)
        btn.SetLabel("Stop")
    else:
        self.slideTimer.Stop()
        btn.SetLabel("Slide Show")
ord('q'):
    break
#

class ViewerFrame(wx.Frame): """"""

#----------------------------------------------------------------------

video_capture.release() cv2.destroyAllWindows()

def __init__(self): """Constructor""" wx.Frame.__init__(self, None, title="Image Viewer") panel = ViewerPanel(self) self.folderPath = "" Publisher().subscribe(self.resizeFrame, ("resize")) self.initToolbar() self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(self.sizer) self.Show() self.sizer.Fit(self) self.Center() #---------------------------------------------------------------------- def initToolbar(self): """ Initialize the toolbar """ self.toolbar = self.CreateToolBar() self.toolbar.SetToolBitmapSize((16,16)) open_ico = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, (16,16)) openTool = self.toolbar.AddSimpleTool(wx.ID_ANY, open_ico, "Open", "Open an Image Directory") self.Bind(wx.EVT_MENU, self.onOpenDirectory, openTool) self.toolbar.Realize() #---------------------------------------------------------------------- def onOpenDirectory(self, event): """ Opens a DirDialog to allow the user to open a folder with pictures """ dlg = wx.DirDialog(self, "Choose a directory", style=wx.DD_DEFAULT_STYLE) if dlg.ShowModal() == wx.ID_OK: self.folderPath = dlg.GetPath() print self.folderPath picPaths = glob.glob(self.folderPath + "\\*.jpg") print picPaths Publisher().sendMessage("update images", picPaths) #---------------------------------------------------------------------- def resizeFrame(self, msg): """""" self.sizer.Fit(self)

----------------------------------------------------------------------

main(): pass

if __name__ == "__main__": app = wx.App() frame = ViewerFrame() app.MainLoop()'__main__': main()

click to hide/show revision 4
No.4 Revision

updated 2015-01-20 22:25:02 -0600

berak gravatar image

Blue square not showing oh screen

Hello folk. I just started using opencv--python.

Intially I typed in some code found here.

link text

But when I typed in the code to my windows 7 64 bit computer and ran it. After a few syntax errors and typos on my part it ran just fine. I dectected the web camera that I have plugged in and it displayed the cameras video in a window. But I do not get that blue square that says it has detected my face. I am using a celron 2200 mhz with 2gb of ram so its not the fastest computer . Is it just that my computer is slow or is there something wrong with the code?

Ok here is the code. It was in the youtube video on the link that I posted,

enter code here#-------------------------------------------------------------------------------

here #------------------------------------------------------------------------------- # Name: OpenCV Example of Face Detection from Facebook

Purpose:

#

Facebook # Purpose: # # Author: DD

#

DD # # Created: 12/01/2015

12/01/2015 # Copyright: (c) DD 2015

2015 # Licence: <your licence="">

-------------------------------------------------------------------------------

Facebook.com/RaspberryVi

licence> #------------------------------------------------------------------------------- #Facebook.com/RaspberryVi import numpy as np import cv2

some cv2 #some comment i a foreign language which I cannot understand. I will put it

thru it #thru Altavista later

later face_cascade = cv2.CascadeClassifier('haarscascade_frontalface_default.xml')

cv2.CascadeClassifier('haarscascade_frontalface_default.xml') video_capture = cv2.VideoCapture(0)

cv2.VideoCapture(0) while True: ret, frame = video_capture.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #capture test with image. #img = cv2.imread("wyld2.jpg") # gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.COLOR_BGR2GRAY)  

    faces = face_cascade.detectMultiScale(gray,1.3,5)
 for(x,y,w,h) in faces:
    cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)




    cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)  

    cv2.imshow('video', frame)
 #some more foreign comments
 if cv2.waitKey(1) & 0xFF == ord('q'):
     break

video_capture.release() cv2.destroyAllWindows()

cv2.destroyAllWindows() def main(): pass

pass if __name__ == '__main__': main()

main()
click to hide/show revision 5
No.5 Revision

updated 2015-01-20 22:29:19 -0600

berak gravatar image

Blue square not showing oh screen

Hello folk. I just started using opencv--python.

Intially I typed in some code found here.

link text

But when I typed in the code to my windows 7 64 bit computer and ran it. After a few syntax errors and typos on my part it ran just fine. I dectected the web camera that I have plugged in and it displayed the cameras video in a window. But I do not get that blue square that says it has detected my face. I am using a celron 2200 mhz with 2gb of ram so its not the fastest computer . Is it just that my computer is slow or is there something wrong with the code?

Ok here is the code. It was in the youtube video on the link that I posted,

enter code here

#-------------------------------------------------------------------------------
# Name:        OpenCV Example of Face Detection from Facebook
# Purpose:
#
# Author:      DD
#
# Created:     12/01/2015
# Copyright:   (c) DD 2015
# Licence:     <your licence>
#-------------------------------------------------------------------------------
#Facebook.com/RaspberryVi

import numpy as np
import cv2
 #some comment i a foreign language which I cannot understand. I will put it
#thru Altavista later
face_cascade = cv2.CascadeClassifier('haarscascade_frontalface_default.xml')

video_capture = cv2.VideoCapture(0)

while True:
    ret, frame = video_capture.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    #capture test with image.
    #img = cv2.imread("wyld2.jpg")
   # gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  

    faces = face_cascade.detectMultiScale(gray,1.3,5)
    for(x,y,w,h) in faces:
        cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)  

    cv2.imshow('video', frame)
    #some more foreign comments
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
video_capture.release()
cv2.destroyAllWindows()


def main():
    pass

if __name__ == '__main__':
    main()