鱼C论坛

 找回密码
 立即注册
查看: 129|回复: 5

求助大佬,如何用python实现在一个页面显示两个摄像头,且一个页面进行聚类处理

[复制链接]
发表于 2022-5-12 13:11:15 | 显示全部楼层 |阅读模式
20鱼币
求助大佬,如何用python实现在一个页面显示两个摄像头,且一个页面进行聚类处理

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-5-12 18:36:22 | 显示全部楼层
# coding: utf-8
import cv2
import numpy as np
import matplotlib.pyplot as plt
from scipy.cluster.vq import *
from pylab import *
from PIL import Image


cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    frame = cv2.flip(
        frame,
        1  #1:水平镜面;-1:垂直
    )
    #读取原始图像
    img = frame

    #图像二维像素转换为一维
    data = img.reshape((-1,3))
    data = np.float32(data)

    #定义中心 (type,max_iter,epsilon)
    criteria = (cv2.TERM_CRITERIA_EPS +
                cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)

    #设置标签
    flags = cv2.KMEANS_RANDOM_CENTERS

    #K-Means聚类 聚集成2类
    compactness, labels, centers = cv2.kmeans(data, 3, None, criteria, 10, flags)

    #图像转换回uint8二维类型
    centers = np.uint8(centers)
    res = centers[labels.flatten()]
    dst = res.reshape((img.shape))

    #图像转换为RGB显示
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)

    #用来正常显示中文标签
    plt.rcParams['font.sans-serif']=['SimHei']
    cv2.imshow("dst", dst)

    if cv2.waitKey(1) &0xFF == ord('q'):
        break
#当一切完成,释放捕获
cap.release()
cv2.destroyALLWindows()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-5-12 18:38:01 | 显示全部楼层
这是我现在实现的代码,还有一下几点没有实现,求助大佬:
1.在一个页面显示原图以及聚类完后的图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-5-12 18:38:45 | 显示全部楼层

这是我现在实现的代码,还有一下几点没有实现,求助大佬:
1.在一个页面显示原图以及聚类完后的图
2.不是彩色的

万分感谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-5-12 18:42:40 | 显示全部楼层
有其他的方法也可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2022-5-13 22:07:52 | 显示全部楼层
有大佬能帮忙解决一下这个问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2022-5-25 14:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表