小编win*_*d85的帖子

计算机视觉:掩盖人手

我想从实时视频流中检测到我的手并创建一个我的手的面具.然而,正如你从图片中看到的那样,我的结果非常糟糕.

我的目标是跟踪手的运动,所以我所做的就是从BGR转换视频流HSV色彩空间,然后我为了我的手的颜色隔离阈值处理的图像,然后我试图找到我的手的轮廓,虽然最终的结果并不是我想要实现的目标.

我怎样才能改善最终结果?

import cv2
import numpy as np

cam = cv2.VideoCapture(1)
cam.set(3,640)
cam.set(4,480)
ret, image = cam.read()

skin_min = np.array([0, 40, 150],np.uint8)
skin_max = np.array([20, 150, 255],np.uint8)    
while True:
    ret, image = cam.read()

    gaussian_blur = cv2.GaussianBlur(image,(5,5),0)
    blur_hsv = cv2.cvtColor(gaussian_blur, cv2.COLOR_BGR2HSV)

#threshould using min and max values
    tre_green = cv2.inRange(blur_hsv, skin_min, skin_max)
#getting object green contour
    contours, hierarchy = cv2.findContours(tre_green,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#draw contours
    cv2.drawContours(image,contours,-1,(0,255,0),3)

    cv2.imshow('real', image)
    cv2.imshow('tre_green', tre_green)   

    key = cv2.waitKey(10)
    if key == 27:
        break
Run Code Online (Sandbox Code Playgroud)

这里是图片链接:https://picasaweb.google.com/103610822612915300423/February7201303.带图像的新链接以及轮廓,蒙版和原始图像. …

python opencv computer-vision

11
推荐指数
1
解决办法
1万
查看次数

Opencv与wxpython的集成

我只是想将来自我的网络摄像头的opencv视频流整合到一个比highgui所能提供的更复杂的gui中,没有什么可以只看几个按钮和其他东西,但事实证明它并非那么微不足道.我找不到任何基本的例子,我可以从中开始设计gui.我尝试将此代码转换为新的opencv接口,结果非常糟糕.我是opencv,numpy和gui设计的新手.有时候会播放视频,但大部分时间它只是挂在那里.我猜我的一个错误可能是在wx.BitmapFromBuffer(col,row,img)中,因为在旧版本中他们使用了pil图像格式,现在它使用numpy数组,因此在原始代码中使用了pil函数"imageData",而不是正如我所做的那样直接传递numpy数组.任何帮助,它真的很感激. color_channels_pic

这是我的代码转换.

import wx
import cv2

class MyFrame(wx.Frame):
   def __init__(self, parent):
       wx.Frame.__init__(self, parent)
       self.displayPanel = wx.Panel(self)
       self.displayPanel.SetSize(wx.Size(800,640))

       self.cam = cv2.VideoCapture(1)
       self.cam.set(3, 640)
       self.cam.set(4, 480)
       ret, img = self.cam.read()

       cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
       row, col, x = img.shape
       self.SetSize((col,row))
       self.bmp = wx.BitmapFromBuffer(col, row, img)
       self.displayPanel.Bind(wx.EVT_PAINT, self.onPaint)

       self.playTimer = wx.Timer(self)
       self.Bind(wx.EVT_TIMER, self.onNextFrame)

       self.playTimer.Start(1000/15)

    def onPaint(self, evt):
        if self.bmp:
            dc = wx.BufferedPaintDC(self.displayPanel)
            self.PrepareDC(dc)
            dc.DrawBitmap(self.bmp, 0, 0, True)
        evt.Skip()

    def onNextFrame(self, evt):
        ret, img = self.cam.read()
        if ret == True:
            cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
            self.bmp.CopyFromBuffer(img)
            self.displayPanel.Refresh() …
Run Code Online (Sandbox Code Playgroud)

python opencv wxpython numpy python-imaging-library

6
推荐指数
1
解决办法
8599
查看次数

python无法将float转换为int

我有一点问题要理解为什么python不会将浮点数转换为int.以下是代码段.

import time

now = time.time()
print type(now)
int(now)
print type(now)
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果,我无法弄清楚为什么.有任何想法吗?提前致谢

<type 'float'>
<type 'float'>
Run Code Online (Sandbox Code Playgroud)

python casting

0
推荐指数
1
解决办法
1710
查看次数