opencv 学习代码整理

2023-10-30





#1 load image 
import cv2
import numpy as npfrom matplotlib 
import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()


# if you want store the image to local
cv2.imwrite('watchgray.png',img)



#show image by matplotlib
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('watch.jpg',cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y 
axisplt.plot([200,300,400],[100,200,300],'c', linewidth=5)
plt.show()



#2 加载视频源
import numpy as np
import cv2
cap = cv2.VideoCapture(0) 
while(True): 
    ret, frame = cap.read() 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    cv2.imshow('frame',gray) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
        break
cap.release()
cv2.destroyAllWindows()

# if you want transcribe the vedio 
import numpy as np
import cv2
cap = cv2.VideoCapture(1)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(True): 
    ret, frame = cap.read() 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    out.write(frame) 
    cv2.imshow('frame',gray) 
    if cv2.waitKey(1) & 0xFF == ord('q'):
    break
cap.release()
out.release()
cv2.destroyAllWindows()


#3、在图像上绘制和写字
import numpy as np
import cv2
img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)

cv2.line(img,(0,0),(150,150),(255,255,255),15)
#cv2.rectangle(img,(15,25),(200,150),(0,0,255),15)
#cv2.circle(img,(100,63), 55, (0,255,0), -1)

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()


#写字
import numpy as np
import cv2
mg = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
cv2.line(img,(0,0),(200,300),(255,255,255),50)
cv2.rectangle(img,(500,250),(1000,500),(0,0,255),15)
cv2.circle(img,(447,63), 63, (0,255,0), -1)
pts = np.array([[100,50],[200,300],[700,200],[500,100]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img, [pts], True, (0,255,255), 3)
font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img,'OpenCV Tuts!',(10,500), font, 6, (200,255,155), 13, cv2.LINE_AA)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

#4 图像操作

#读取 
import cv2
import numpy as np
img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
px = img[55,55]
print(px)

#修改 
import cv2
import numpy as np
img = cv2.imread('watch.jpg',cv2.IMREAD_COLOR)
#img[55,55] = [255,255,255]
img[100:150,100:150] = [255,255,255]
cv2.imshow('image',img)

print(img.shape)
print(img.size)
print(img.dtype)

#5 图像算术和逻辑运算
import cv2
import numpy as np
# 500 x 250
img1 = cv2.imread('3D-Matplotlib.png')
img2 = cv2.imread('mainsvmimage.png')
# add = cv2.add(img1,img2)
add = img1+img2
cv2.imshow('add',add)
cv2.waitKey(0)
cv2.destroyAllWindows()

import cv2
import numpy as np
img1 = cv2.imread('3D-Matplotlib.png')
img2 = cv2.imread('mainsvmimage.png')
weighted = cv2.addWeighted(img1, 0.6, img2, 0.4, 0)
cv2.imshow('weighted',weighted)
cv2.waitKey(0)cv2.destroyAllWindows()


import cv2
import numpy as np
# Load two images
img1 = cv2.imread('3D-Matplotlib.png')
img2 = cv2.imread('mainlogo.png')
# I want to put logo on top-left corner, So I create a ROI
rows,cols,channels = img2.shape
roi = img1[0:rows, 0:cols ]
# Now create a mask of logo and create its inverse mask
img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
# add a threshold
ret, mask = cv2.threshold(img2gray, 220, 255, cv2.THRESH_BINARY_INV)
mask_inv = cv2.bitwise_not(mask)
# Now black-out the area of logo in ROI
img1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv)
# Take only region of logo from logo image
img2_fg = cv2.bitwise_and(img2,img2,mask = mask)
dst = cv2.add(img1_bg,img2_fg)
img1[0:rows, 0:cols ] = dst
cv2.imshow('res',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()


#6 阈值

# 阈值筛选
import cv2
import numpy as np
img = cv2.imread('bookpage.jpg')
retval, threshold = cv2.threshold(img, 12, 255, cv2.THRESH_BINARY)
cv2.imshow('original',img)
cv2.imshow('threshold',threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()


#转换成灰度,再阈值筛选
import cv2
import numpy as np
img = cv2.imread('bookpage.jpg')
grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
retval, threshold = cv2.threshold(grayscaled, 10, 255, cv2.THRESH_BINARY)
cv2.imshow('original',img)
cv2.imshow('threshold',threshold)
cv2.waitKey(0)
cv2.destroyAllWindows()

#自适应阈值
import cv2
import numpy as np
img = cv2.imread('bookpage.jpg')
grayscaled = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
th = cv2.adaptiveThreshold(grayscaled, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 115, 1)
cv2.imshow('original',img)
cv2.imshow('Adaptive threshold',th)
cv2.waitKey(0)
cv2.destroyAllWindows()

#大津阈值,在这个图片效果并不好
retval2,threshold2 = cv2.threshold(grayscaled,125,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.imshow('original',img)
cv2.imshow('Otsu threshold',threshold2)
cv2.waitKey(0)
cv2.destroyAllWindows()



#7 color filter 
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask) 
    cv2.imshow('frame',frame) 
    cv2.imshow('mask',mask) 
    cv2.imshow('res',res) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()

#加入模糊和平滑技术
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1): 
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask)
    kernel = np.ones((15,15),np.float32)/225 
    smoothed = cv2.filter2D(res,-1,kernel) 
    cv2.imshow('Original',frame) 
    cv2.imshow('Averaging',smoothed) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()

# 高斯模糊
blur = cv2.GaussianBlur(res,(15,15),0) 
cv2.imshow('Gaussian Blurring',blur)

#中值模糊
median = cv2.medianBlur(res,15) 
cv2.imshow('Median Blur',median)

#双向模糊
bilateral = cv2.bilateralFilter(res,15,75,75) 
cv2.imshow('bilateral Blur',bilateral)


#9 形态变换

#腐蚀和膨胀
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1): 
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask) 
    kernel = np.ones((5,5),np.uint8) 
    erosion = cv2.erode(mask,kernel,iterations = 1) 
    dilation = cv2.dilate(mask,kernel,iterations = 1) 
    cv2.imshow('Original',frame) 
    cv2.imshow('Mask',mask) 
    cv2.imshow('Erosion',erosion) 
    cv2.imshow('Dilation',dilation) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()


# 开放和关闭
cap = cv2.VideoCapture(1)
while(1): 
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask) 
    kernel = np.ones((5,5),np.uint8) 
    opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) 
    closing = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel) 
    cv2.imshow('Original',frame) 
    cv2.imshow('Mask',mask) 
    cv2.imshow('Opening',opening) 
    cv2.imshow('Closing',closing) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()

# 10 边缘检测和渐变
import cv2
import numpy as np
cap = cv2.VideoCapture(1)
while(1): # Take each frame 
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask) 
    laplacian = cv2.Laplacian(frame,cv2.CV_64F) 
    sobelx = cv2.Sobel(frame,cv2.CV_64F,1,0,ksize=5) 
    sobely = cv2.Sobel(frame,cv2.CV_64F,0,1,ksize=5) 
    cv2.imshow('Original',frame) 
    cv2.imshow('Mask',mask) 
    cv2.imshow('laplacian',laplacian) 
    cv2.imshow('sobelx',sobelx) 
    cv2.imshow('sobely',sobely) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()

#Canny 边缘检测
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1): 
    _, frame = cap.read() 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 
    lower_red = np.array([30,150,50]) 
    upper_red = np.array([255,255,180]) 
    mask = cv2.inRange(hsv, lower_red, upper_red) 
    res = cv2.bitwise_and(frame,frame, mask= mask) 
    cv2.imshow('Original',frame) 
    edges = cv2.Canny(frame,100,200) 
    cv2.imshow('Edges',edges) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
        break
cv2.destroyAllWindows()
cap.release()

# 十一、模板匹配
import cv2
import numpy as np
img_rgb = cv2.imread('opencv-template-matching-python-tutorial.jpg')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('opencv-template-for-matching.jpg',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)

for pt in zip(*loc[::-1]): 
    cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,255,255), 2)
    cv2.imshow('Detected',img_rgb)

# 12 前景提取
import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('opencv-python-foreground-extraction-tutorial.jpg')
mask = np.zeros(img.shape[:2],np.uint8)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
rect = (161,79,150,150)

cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img = img*mask2[:,:,np.newaxis]
plt.imshow(img)
plt.colorbar()
plt.show()

#十三、角点检测
import numpy as np
import cv2
img = cv2.imread('opencv-corner-detection-sample.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.int0(corners)
for corner in corners: 
    x,y = corner.ravel() 
    cv2.circle(img,(x,y),3,255,-1) 
cv2.imshow('Corner',img)

# 十四、特征匹配(单映射)爆破
import numpy as np
import cv2
import matplotlib.pyplot as plt
img1 = cv2.imread('opencv-feature-matching-template.jpg',0)
img2 = cv2.imread('opencv-feature-matching-image.jpg',0)
orb = cv2.ORB_create()
kp1, des1 = orb.detectAndCompute(img1,None)
kp2, des2 = orb.detectAndCompute(img2,None)

bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)


matches = bf.match(des1,des2)
matches = sorted(matches, key = lambda x:x.distance)

img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10],None, flags=2)
plt.imshow(img3)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv 学习代码整理 的相关文章

  • Access数据库注入详解

    一个人再冷酷无情 他曾经都单纯过 能有这样的结果 都是被逼的 渗透入坑学废集 前言 注入漏洞分析 网站分类 常见数据库 网站访问模型 漏洞成因 注入漏洞是怎么样形成的 常见的注入流程 注入危害 ACCESS数据库注入详解 ACCESS数据库
  • 【BZOJ】【P1816】【Cqoi2010】【扑克牌】【题解】【水题】

    传送门 http www lydsy com JudgeOnline problem php id 1816 一张图表示我wa了三次的心情 Code include
  • SpringBoot01--运行原理和自动装配原理

    SpringBoot01 一 是什么 二 SpringBoot优点 三 运行原理 四 Springboot注解 五 自动装配原理 三步 是什么 怎么做 为什么 一 是什么 1 Spring Boot是由Pivotal团队提供的全新框架 其设
  • Pycharm缓存文件太大,转移C盘中Pycharm缓存文件

    转移C盘中Pycharm缓存文件 问题 将C盘用户目录下的 Pycharm转移到E盘文件夹下 解决 找到PyCharm的D software pycharm 2019 PyCharm 2019 1 bin 添加4个 在四处红框位置处添加四行
  • Unity3D -- 自动生成动画(AnimationClip)

    我们一个Prefab有很多个子物体 而且当前prefab使用了大量的动画状态 假如想将该Prefab动画更改过的属性在Idle中重新更改过来 一种比较暴力方法就是直接将需要更改的属性在Idle动画中K出来 但如果动画有更改的话 我们就需要更
  • window下配置hosts文件,使虚拟机主机名与IP地址映射

    目录 1 点击此路径 C Windows System32 drivers etc 2 找到hosts并修改 3 然后将写好的hosts文件复制到原先的路径下 替换原文件 4 尝试ping虚拟机的主机名 成功 1 点击此路径 C Windo
  • 图解通信原理与案例分析-5:计算机中央处理器CPU与内存芯片之间的二进制数字信号通信

    引言 我们知道 计算机是一个二进制的世界 相应的硬件电路 我们称为数字电路 与之对应的是模拟电路 相应的可执行的指令 我们称为二进制指令 从计算机的角度来看 只需要关注0和1 不需要关注数字信号的特征 幅度 极性等 也不需要关注如何通过数字
  • for input string:原因及其解决方案

    javascript view plain copy 首先我这里遇到的错误 for input String if 类型 money Double parseDouble 数据库中获取的内容 else if 类型 number Intege
  • StyleGAN新升级

    点击上方 机器学习与生成对抗网络 关注星标 获取有趣 好玩的前沿干货 文章来源 机器之心 编辑部 来自以色列特拉维夫大学的研究者在生成图像方面又有了新的升级 所用方法在保留源图像身份的同时 在细节编辑上实现了更精细的效果 英伟达提出的风格迁
  • 使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果

    使用动态优先权的进程调度算法 C语言模拟实现 含详细源代码和实验结果 题目描述 实现对N个进程采用某种进程调度算法 如动态优先权调度 的调度 每个用来标识进程的进程控制块PCB可用结构来描述 包括以下字段 进程标识数ID 进程优先数 PRI
  • CLIP(Contrastive Language-Image Pre-Training)简介

    CLIP Contrastive Language Image Pre Training 利用文本的监督信号训练一个迁移能力强的视觉预训练模型 通过对比学习 训练得到图片和文本的相似度 传闻使用4亿个配对的数据和文本来进行训练 不标注直接爬
  • 打开运行PS、AI等软件时卡在启动窗口的解决办法

    在运行 Adobe Photoshop Illustrator PR等软件时 如果遇到卡在启动页面 可以尝试用下面方法解决 Mac软件资源下载站https mac macsc com id Mjk0ODE5 先将卡住的应用强制退出 左上角
  • 计算机键盘盲打方法,电脑键盘盲打练习方法 盲打键盘指法练习技巧

    小编在小学的时候电脑老师就教过打字 但是那时候还不会盲打 当时各种羡慕会盲打的童鞋 如今已经会盲打了 也想将练习盲打的一些技巧分享给大家 电脑键盘盲打练习方法 盲打键盘指法练习技巧 1 所谓标准指法就是把你的双手依照下图的位置放在键盘上 即
  • chrome - 开发者工具调试技巧

    谷歌浏览器 通常简称为 Chrome 是由谷歌开发的网络浏览器 在开发工作中 Chrome极大的方便开发调试代码 主流的浏览器都内置了 DevTools 掌握 Chrome 的调试技巧 可以提高工作效率 对于测试人员来说 掌握Chrome
  • 测试php中接收call_user_func_array抛出的异常

    1 首先新建一个mytest数据表 表引擎注意使用的innodb CREATE TABLE mytest id int 11 NOT NULL AUTO INCREMENT name varchar 30 NOT NULL DEFAULT
  • Vue的MVVM原理

    MVC 传统的MVC是指用户的操作会调用服务器接口 服务器将处理结果返回给前端Model 然后页面进行重新渲染 MVVM MVVM模型则是指ViewModel通过Data Bindings绑定数据来监听数据的变化 从而更新页面的DOM Vi
  • 如何用html调出磁盘空间,磁盘空间满了?SpaceSniffer 让硬盘空间容量使用一目了然!...

    本来用得好好的电脑 某一天打开之后发现系统盘C盘显示红色 也就是说磁盘空间满了 但是想来想去C盘里也没有什么大的文件 最近也没有安装过什么大型程序 奇怪了 怎么办 C盘下这么多文件如何查找和判断 这里请出非常好用的 SpaceSniffer
  • uniapp小程序分享功能onShareAppMessage函数传参数

    1 使用onShareAppMessage函数 在页面的js文件中定义了 onShareAppMessage 函数时 页面可以表示该页面可以转发 可以在函数中设置页面转发的信息 1 只有定义了该函数 小程序右上角的菜单中才会有转发按钮 2
  • 短视频seo矩阵系统开发者源码打包

    foreach video list as item item video num material model gt getMaterialCountByVideo item dv id 1 item audio num material
  • 在Mac/win10上将Python 3设置为默认

    which python3 alias python usr bin python3 pip3同理 pip3更换为国内镜像 pip3 config set global index url https pypi tuna tsinghua

随机推荐

  • 程序员11月书讯

    10月书讯中奖名单 iorilan 极简 逆流的鱼yuiop mlcjq Marksinoberg 好书推荐 在图灵书讯中选出你认为值得推荐的好书加推荐理由或推荐语 在文末评论里回复 下期书讯更新时 会在本期的书讯评论中选出若干优秀评论 获
  • 一个完整的软件项目管理流程包括什么?有什么软件项目管理工具?

    软件项目管理全流程 及各环节方法 辅助工具 项目的类型不同 其流程必然会不一样 关于通用项目管理的流程其他回答讲述已经非常完善 个人推荐这篇 泛项目管理流程包括哪些 这里就不再赘述 这里要分享的是关于软件项目管理的流程是什么样的 以及我们使
  • 突发!ChatGPT之父警告AI可能灭绝人类,350名AI权威签署联名公开信

    外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img Xij9fMAd 1685974950524 C Users lenovo AppData Local Temp ksohtml3116 wps1 jpg 就在刚刚
  • 多标记学习(大大杂烩,有点乱)

    多标记学习算法 算法分类 按相关性划分 一阶 first order 策略 该类策略通过逐一考察单个标记而忽略标记之间的相关性 如将多标记学习问题分解为 个独立的二类分类问题 从而构造多标记学习系统 该类方法效率较高且实现简单 但由于其完全
  • Unity导入FBX动画文件

    给刚入门的同学稍微记一下fbx格式动画导入unity的步骤 首先直接把fbx文件拖入unity内 如图操作 将avatar骨骼创建之后 我们接下来就根据自己对动画的一些需求设置一下动画的参数 比如截取一下动画的开始帧和结束帧来达到剪切的目的
  • 使用vue实现幻灯片

    1 在父组件中
  • JS事件循环机制(event loop)之宏任务/微任务

    原文地址 Tasks microtasks queues and schedules 视频讲解地址 https www bilibili com video av83625811 from search seid 6644038259868
  • 测试磁盘寻道时间

    分析性能时 文件系统读取速度不定 主要因为时间不仅花在读取上 还花在磁盘旋转和寻道上 写了一段代码测试这个的时间 一般普通硬盘是10ms左右 有两个函数 第一个函数是生成50G数据 第二个函数是测试 package WebGis Tile
  • OPTICS 点云聚类算法 (附python代码)

    OPTICS Ordering Points To Identify the Clustering Structure 和DBSCAN Density Based Spatial Clustering of Applications wit
  • QObject::connect: Cannot queue arguments of type ‘XXX‘

    1 开发环境 Win10 64bit Qt5 4 2 64bit 2 错误描述 在不同线程之间通过信号 槽来传递自定义数据类型QList
  • jmeter基本教程

    目录 1 简述 2 下载安装 3 基础设置 Jmeter的语言切换 修改Jmeter默认编码为utf 8解决控制台乱码 4 编写项目测试脚本 4 1 添加线程组 4 2 添加测试接口 4 3 添加察看结果树 4 4 添加用户自定义变量 4
  • QTHelprModule.dll 是什么

    QTHelperModule dll 是一个 Windows 平台上的动态链接库 DLL 文件 它通常是某些软件的一部分 用于执行特定的功能和服务 该文件可能包含代码 资源和数据 可以被其他应用程序调用 以实现不同的功能 如果您的系统出现了
  • 物联网:用python调入机器学习分析物联网数据入侵检测模块

    要使用Python调用机器学习分析物联网数据入侵检测模块 您需要以下步骤 安装Python和相关的机器学习库 如scikit learn pandas numpy等 您可以使用pip命令来安装这些库 准备输入数据 这些数据可以是来自物联网设
  • CentOS7 使用minikube 搭建kubernetes 学习环境

    Windows 10 系统 VirtualBox 6 0 x CentOS7启动在虚拟机上 先要安装docker 官网 https docs docker com engine install 有guide 一步步下来很简单 不多说了 按照
  • Python 之 格式化输出

    欢迎大家扫码关注我的微信公众号 Python 格式化输出 目录 一 为何需要进行格式化输出 二 格式化输出的几种方式 2 1 使用 进行格式化 2 1 1 字符串的格式化 2 1 2 浮点数的格式化 2 2 使用 format 进行格式化
  • DFRobot新推出一款适合短时间环境数据记录的Gravity 串口数据记录器

    著名开源硬件商DFRobot新推出一款Gravity 串口数据记录器 适用于做科学记录或短时间环境数据记录 Gravity 串口数据记录器产品特性 1 Gravity 串口数据记录器相比 MicroSD卡 读卡器模块存储数据 可以更方便的存
  • Gradle编译失败问题汇总

    Gradle编译失败问题汇总 问题1 Could not resolve org springframework boot spring boot gradle plugin 3 0 0 A problem occurred configu
  • canonical raft源码编译

    canonical raft源码编译 一 下载源码 二 安装环境 三 编译 四 问题报错 五 总结 一 下载源码 https codeload github com canonical raft tar gz refs tags v0 11
  • 自建代码托管平台 Gitlab 的使用说明(二)常用命令

    一 运维管理排查 查看版本 cat opt gitlab embedded service gitlab rails VERSION 检查gitlab gitlab rake gitlab check SANITIZE true trace
  • opencv 学习代码整理

    1 load image import cv2 import numpy as npfrom matplotlib import pyplot as plt img cv2 imread watch jpg cv2 IMREAD GRAYS