首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python OpenCv2,计算有色物体的轮廓

Python OpenCv2,计算有色物体的轮廓
EN

Stack Overflow用户
提问于 2016-09-26 01:52:06
回答 1查看 1.3K关注 0票数 0

我希望能够计算检测到的对象中的像素数。我正在使用cv2.threshold函数。下面是一些sudo代码。

代码语言:javascript
复制
import cv2
import numpy as np
import time

while True:
    cam= cv2.VideoCapture(0)
    while(cam.isOpened())
        ret, image = cam.read()
        image = cv2.GaussianBlur(image, (5,5), 0)
        Image1 = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
        lower= np.array([30,40,40], dtype='uint8')
        upper= np.array([95,240,240], dtype='uint8')
        Thresh= cv2.inRange(Image1, lower, upper)

从现在开始,我不知道如何计算对象的像素。如何找到二进制图像的轮廓?我认为在阈值/蒙版上cv2.bitwise_and全黑图像是可能的,但这看起来可能很慢,而且我不知道如何创建这样的全黑白图像。

那么TD:LR,如何从二值图像中计算对象的像素数?

注意:我实际上只是在寻找最大的对象,只需要像素数,而不是图像。

编辑:不是尝试计算检测到的像素总数,我已经这样做了。想要从具有最大数目的对象中检测到的像素数。

EN

回答 1

Stack Overflow用户

发布于 2016-10-03 13:13:29

我就是这么做的

代码语言:javascript
复制
import cv2
import numpy as np
import time
from scipy.ndimage import (labeled_comprehension, label, measurements, generate_binary_structure) # new import

while True:
    cam= cv2.VideoCapture(0)
    while(cam.isOpened())
        ret, image = cam.read() # record image
        image = cv2.GaussianBlur(image, (5,5), 0) # blur to remove noise
        Image1 = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # convert to better color scheme
        lower= np.array([30,40,40], dtype='uint8') # low green
        upper= np.array([95,240,240], dtype='uint8') # high green
        Thresh= cv2.inRange(Image1, lower, upper) # returns array with 255 as pixel if in threshold
        struct = generate_binary_structure(2,2) # seems necessary for some reason
        Label, features = label(Thresh, struct) # label is object, features is number of objects
        Arange = np.arange(1, features+1) # seems necessary for some reason
        Biggest = sorted(labeled_comprehension(Thresh, Label, Arange, np.sum, float, -1))[features-1]//255 # counts and organises the objects based on size. [features-1] means last object, ie: biggest. //255 because that's each pixel work (from thresh)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39689938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档