Opencv中的MeanShift图像分割和视频背景分离(python实现)

OpenCV分水岭算法图像分割 文章目录声明正文原理函数pyrMeanShiftFiltering()Otsu’s 二值化cv.getStructuringElementcv.morphologyExcv.dilatecv.distanceTransformcv.connectedComponents完整代码 声明 声明:本系列博客是我在学习OpenCV官方教程中文版(For Python)(段力辉 译)所做的笔记。所以,其中的绝大部分内容引自这本书,博客中的代码也是其配套所附带的代码或书中的代码,侵删。其中部分代码可能会因需要而改动。 阅读详情

1.MeanShift原理

(1)严格来说该方法并不是用来对图像进行分割的,而是在彩色层面的平滑滤波;
(2)它会中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉那些面积较小的颜色区域;
(3)它以图像上任一点P为圆心,半径为sp,色彩幅值为sr进行不断的迭代;

pyrMeanShiftFiltering(src, sp, sr, dst=None, maxLevel=None, termcrit=None):

Src:输入的原始图像;
Sp:双精度半径,值越大,模糊程度越大;
Sr:色彩的幅值变化范围,变化范围越大,连成一片区域的也就是越大。
Dst:输出的图像;
maxLevel:默认值为1;
Termcrit:终止标准:何时停止meanshift迭代。

import os
import cv2
import numpy as np

img=cv2.imread('images/lenna.png')
img=cv2.resize(src=img,dsize=(450,450))
#图像分割
dst=cv2.pyrMeanShiftFiltering(src=img,sp=20,sr=30)
#图像分割(边缘的处理)
canny=cv2.Canny(image=dst,threshold1=30,threshold2=100)
#查找轮廓
conturs,hierarchy=cv2.findContours(image=canny,mode=cv2.RETR_EXTERNAL,method=cv2.CHAIN_APPROX_SIMPLE)
#画出轮廓
cv2.drawContours(image=img,contours=conturs,contourIdx=-1,color=(0,255,0),thickness=3)

cv2.imshow('img',img)
cv2.imshow('dst',dst)
cv2.imshow('canny',canny)
cv2.waitKey(0)
cv2.destroyAllWindows()

if __name__ == '__main__':
    print('Pycharm')

在这里插入图片描述
Canny边缘检测算法:
https://mydreamambitious.blog.youkuaiyun.com/article/details/125116318
图像查找findHomography:
https://mydreamambitious.blog.youkuaiyun.com/article/details/125385752


2.视频前后景分离

(1)MOG2去除背景

在createBackgroundSubtractorMOG的基础上进行了改进;

混合高斯模型为基础的前景或者背景分割算法

createBackgroundSubtractorMOG2(history=None, varThreshold=None, detectShadows=None):

History:进行建模的需要多长的参考帧,默认值为200;
varThreshold:判断背景模型是否能很好地描述像素。
detectShadows:阴影检测;

import os
import cv2
import numpy as np

#打开摄像头
cap=cv2.VideoCapture('video/University_Traffic.mp4')
#创建前景分离对象
bgsegment=cv2.createBackgroundSubtractorMOG2()

while cap.isOpened():
    OK,frame=cap.read()
    if OK==False:
        break
    frame=cv2.resize(src=frame,dsize=(500,500))
    fgmask=bgsegment.apply(frame)
    cv2.imshow('img',fgmask)

    if cv2.waitKey(1)&0xFF==27:
        break

cap.release()
cv2.destroyAllWindows()

if __name__ == '__main__':
    print('Pycharm')

在这里插入图片描述

从视频帧中可以看到MOG2产生了很多的噪点,所以对此提出了改进的方法:
GMG去除背景的方法:
静态背景图估计和每个像素的贝叶斯分割抗噪性更强;

opencv之图像滤波 图像滤波 图像滤波分类 转存失败重新上传取消转存失败重新上传取消 卷积简介 图片来自【http://www.elecfans.com/d/920675.html】 卷积的实质对某个像素的领域内的所有像素与卷积核逐像素进行线性加权平均值 如图所示,原图为6*6的输入图像,经过3*3的卷积核变成4*4的输出图像【(6-3)//1+1】 计算公式: (input.size-kern... 阅读详情

相关推荐

第一个ncnn项目

之前一直想尝试ncnn项目,一致没有机会,最近找了一个项目练手。 是一个人像分割换背景的项目,先是pytorch训练pth模型,pth模型转onnx模型,onnx模型转ncnn模型。 然后是pth模型测试,onnx模型测试,ncnn模型测试。 pth模型和onnx模型测试结果一致,到ncnn时模型结果比较差。 pyotrch模型转pt模型使用libtorch预测效果跟pyotrch预测效果一致。ncnn预测结果有较大精度损失。 下面把ncnn预测代码列出: #include "net.h" #include

juluwangriyue的博客 556

【笔记】Opencv 均值漂移pyrMeanShiftFiltering彩色图像分割流程剖析

可视化超参数作用机制(一):动画化激活函数

nyist_yangguang的博客 2474

OpenCV-Python实战(29)——基于视觉显著性的自动多目标跟踪系统

本节我们探索了一种标记视觉场景中潜在有趣物体的方法,即使这些物体的形状和数量都是未知的。我们利用傅里叶分析研究了自然图像统计特性,并实现了一种提取自然场景中视觉显著区域的方法。此外,我们将显著性检测器的输出与跟踪算法相结合,在一个足球比赛视频序列中跟踪了多个形状和数量未知的物体。我们还介绍了 OpenCV 中其他更复杂的跟踪算法,可以用它们替代应用程序中的均值漂移跟踪,甚至创建自己的应用程序。当然,也可以用之前学过的技术(如特征匹配或光流法)来替换均值漂移跟踪器。

盼小辉丶的博客 1475

基于MeanShift的图像滤波方法

在视觉领域中,图像滤波是一种常用的技术,用于去除图像中的噪声和平滑图像。其中,MeanShift滤波是一种基于颜色和空间信息的非参数化滤波算法。

小张的技术分享博客 881

k-means和meanshift在图像聚类分割中的对比

运行在Matlab2012下,带有GUI,可对彩色图像进行Kmeans和meanshift进行聚类分析,生成最后的聚类图像以及聚类中心的迭代轨迹

Meanshift的matlab代码-pymeanshift:用于均值偏移图像分割的Python模块

Meanshift的matlab代码PyMeanShift 是一个 Python 模块/扩展,用于使用均值偏移算法分割图像。 PyMeanShift 模块/扩展被设计为使用 Numpy 数组,这使其与 OpenCV 模块“cv2”和 PIL 模块兼容。 均值偏移算法及其 C++ 实现由 Chris M. Christoudias 和 Bogdan Georgescu 编写。 PyMeanShift 扩展为使用 Numpy 数组的 meanshift C++ 实现提供了 Python 接口。 有关更多信息,请参阅 上的 wiki 页面。 安装说明可以在 wiki 页面上找到。 维基页面上提供了具有不同参数值的均值偏移图像分割的示例。 使用 OpenCV 的代码示例: import cv2 import pymeanshift as pms original_image = cv2 . imread ( "example.png" ) ( segmented_image , labels_image , number_regions ) = pms . segment ( original

OpenCV 视频目标跟踪详解:MeanShift 与 CamShift 算法实战

OpenCV 视频目标跟踪详解:MeanShift 与 CamShift 算法实战

燕鹏 1348

轻量级PP-HumanSeg lite人像分割模型NCNN C++部署代码和模型

1、轻量级人像分割模型PP-HumanSeg NCNN C++部署代码; 2、包含onnx模型和ncnn模型。

PyMeanShift:基于Python的图像分割利器

PyMeanShift:基于Python的图像分割利器 项目介绍 PyMeanShift是一个强大的Python扩展模块,专为图像处理而生,它利用高效的均值漂移(Mean Shift)算法实现图像分割。该模块精心设计以兼容Numpy数组,进而无缝对接OpenCV的cv2和PIL两大图像处理库,为开发者提供了在Python环境中执行高效图像分割的新选择。 项目技术分析 PyMeanShift的核心亮...

gitblog_00406的博客 809

基于deepseek+dify+达梦实现自然语言查询数据库

自然语言查询数据库信息

weixin_43974943的博客 1593

实战指南:CentOS 7下VOS3000 8.0从零部署到授权激活全流程

本文提供了一份详尽的CentOS 7系统下部署VOS3000 8.0的实战指南。从环境准备、使用FileZilla上传安装包、执行自动化安装脚本,到获取软件码、利用注册机生成授权文件并激活,手把手带领用户完成从零部署到投入商用的全流程,确保系统稳定运行。

zero1的博客 895

opencv--python学习记录(十)

将前景物体从背景中分离出来方法:之前讲过的二值化,轮廓,腐蚀膨胀都可以用在图像分割;所以大致分为两种:传统图像分割方法和基于深度学习的图像分割方法;

qq_29969657的博客 367

GEOPHYSICS 投稿避坑指南:从格式规范到双盲评审的实战解析

本文详细解析了GEOPHYSICS期刊投稿的全流程避坑指南,从格式规范、数据声明到双盲评审的实战策略。特别强调了数学公式排版、图表制作标准以及投稿系统的隐藏关卡,帮助作者避免常见错误,提升投稿成功率。

weixin_30606461的博客 236

OpenCV(Python 版)

计算机中的图像本质上是由无数像素组成的网格,彩色图像通常通过红(R)、绿(G)、蓝(B)三个独立的颜色通道来记录信息,每个通道都是一个二维数字矩阵,矩阵中的数值代表对应位置像素该颜色的亮度(通常为 0-255),三个通道的数值组合决定了像素最终呈现的颜色,计算机存储的就是这些通道矩阵数据,以及图像的宽、高、通道数等元信息。

qq_32381773的博客 408

瑞芯微RK3576开发板实战:6TOPS NPU如何加速你的AIoT项目(附性能测试)

本文以瑞芯微RK3576开发板为核心,深入探讨其6TOPS NPU在AIoT项目中的实战应用。通过详细的性能测试对比,展示了NPU如何将AI模型推理速度提升15倍以上,并大幅降低CPU负载。文章涵盖从环境搭建、模型转换优化到多屏异显与系统级调优的全流程,为开发者提供了将硬件算力转化为实际项目加速效果的完整指南。

oauth7security的博客 820

Linux系统监控实战:夜莺监控+categraf采集器配置全流程(附常见问题排查)

本文详细介绍了在Linux系统中使用夜莺监控和categraf采集器进行系统监控的全流程配置,包括环境准备、核心配置文件(如config.toml和procstat.toml)详解、服务集成与验证、高级监控配置实战以及常见问题排查。通过实战案例和优化建议,帮助运维人员快速构建高效的监控体系。

xray4的博客 735

【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)

【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)

showswoller的博客 3124

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2260

Python中的图像处理(第十四章)Python图像分割(2)

Python中的图像处理(第十四章)Python图像分割(2)前言一. Python准备二. Python仿真三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习方向中各种神经网络的应用,使得Python已经成为最受欢迎的程序设计语言之一。由于完全开源,加上简单易学、易读、易维护、以及其可移植性、解释性、可扩展性、可扩充性、可嵌入性:丰富的库等等,自己在学习与工作中也时常接触到Python,这个系列文章的

sinat_34897952的博客 1289

NPU性能榨取手把手教程:RK3588上YOLOv5s多线程部署与120FPS极限探索

RK3588 YOLOv5s多线程部署优化指南 本教程深入解析RK3588芯片上YOLOv5s模型的高性能多线程部署方案。RK3588作为瑞芯微旗舰AIoT芯片,内置三核NPU(6TOPS算力)和硬件加速器(RGA/VPU),为AI推理提供强大支持。通过线程池技术,我们将视频处理的读取、推理、后处理等环节解耦并行,显著提升系统吞吐量。教程详细介绍了从PyTorch到RKNN格式的模型转换流程、INT8量化方法,以及基于RKNN C++ SDK的YOLOv5推理核心实现,帮助开发者最大化发挥RK3588的AI

LXY_LOVE36的博客 973

Android 12 系统横屏时,开机动画有两秒显示不全

平板系统默认横屏时,开机会旋转90度,显示的分辨率WxH,会变成HxW.但又会很快被SurfaceFlinger的SurfaceFlinger::processDisplayChanged 娇正。所以为了保险,可以在开机动画没结束之前,禁止旋转事件。在Android 12 产品定制化开发中,由于系统默认方向为竖屏,平板电脑要横屏显示。系统在开机时,有时因为旋转,会出现动画只显示一部分。

448313096@qq.com 1178

OpenCV + CPP 系列(五十)背景替换与视频绿幕抠图

一、证件照背景替换 实现流程: 指定背景色 获取背景的色块形成蒙板 蒙板边缘羽化 形成新颜色背景 头文件 machine_learning_all.h: #pragma once #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; class Machine_learning{ public: void void replace_bg_demo

红叶谷 wsp_1138886114的博客 1034

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

传统目标跟踪——背景分割法

好像效果很差。会自动识别运动的目标,不需要用鼠标画出一个目标来,(好像就因为这样,导致效果很差)

weixin_45823221的博客 2013

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OpenCV之图像分割(六) 绿幕背景视频抠图

算法设计步骤: 由RGB图像转到HSV(H:色调,S:饱和度,V:亮度),利用hsv在绿幕背景中的颜色范围是,使用inRang函数进行二值 代码: #include &lt;opencv2/opencv.hpp&gt; #include &lt;iostream&gt; using namespace cv; using namespace std; Mat replace_a...

Jackie035 6463

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python+OpenCV笔记(二十六):视频追踪(meanshift、Camshift)

python+OpenCV笔记(二十六):视频追踪(meanshift、Camshift)

ReadyGo!!!的博客 6310

前景背景分割——ostu算法的原理及实现 OpenCV (八)

前景背景分割——ostu算法的原理及实现 OpenCV (八)实验结果代码实现实现原理参考资料 实验结果 代码实现 去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片. #include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; //计算图像灰度直方图 Mat calcgrayhist(const Mat& image) { Mat

格物致知 6038
上一篇: Opencv中的GrabCut图像分割
下一篇: 深度学习之网络模型
Keep_Trying_Go
博客等级 码龄6年 8545粉丝 1230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值