本文共 4663 字,大约阅读时间需要 15 分钟。
# -*- coding: utf-8 -*-#!/usr/bin/env python #指定通过python解释代码(必须放在首行,不可少)from std_msgs.msg import Int32MultiArray #导入python的标准字符处理库import cv2 import numpy as npimport imutilsimport time import math#打开摄像头camera=cv2.VideoCapture(0)#设定红色阈值,HSV空间 boundaries = [ ( [0, 100, 100], #lower color range [10, 255, 255] ) ]#upper color range while True: ret,frame = camera.read() #判断是否成功打开摄像头 if not ret: print 'No Camera' break # resize the frame, blur it, and convert it to the HSV color space frame = imutils.resize(frame, width=640) # 进行高斯模糊 blurred = cv2.GaussianBlur(frame, (11, 11), 0) #转到HSV空间 hsv=cv2.cvtColor(blurred,cv2.COLOR_BGR2HSV) cv2.imshow("hsv", hsv) for (lower, upper) in boundaries: lower = np.array(lower, dtype = "uint8") upper = np.array(upper, dtype = "uint8") # 对图片进行二值化处理 mask = cv2.inRange(hsv, lower, upper) #腐蚀操作 mask = cv2.erode(mask, None, iterations=2) #膨胀操作,其实先腐蚀再膨胀的效果是开运算,去除噪点 mask = cv2.dilate(mask, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)), iterations=2) #mask = cv2.dilate(mask, None, iterations=2) # find contours in the mask and initialize the current # (x, y) center of the ball #轮廓检测 cnts= cv2.findContours(mask.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) if imutils.is_cv2(): cnts = cnts[0] else: cnts = cnts[1] center = None #初始化轮廓质心 #如果存在轮廓 if len(cnts)>0: #找到面积最大的轮廓 c=max(cnts,key = cv2.contourArea) # 外接矩形,始终水平 cnt = c x, y, w, h = cv2.boundingRect(cnt) # x,y=图像左上方坐标, w,h=宽和高 origin_pic = cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2) # 用绿色(0, 255, 0)来画出最小的矩形框架 # 外接最小矩形 rect = cv2.minAreaRect(c) #rect:元组,[0]是中心坐标,[1]长宽,[2]角度 box = cv2.boxPoints(rect) box = np.int0(box) cv2.drawContours(frame,[box],0,(0,0,255),2) # 用红色表示有旋转角度的矩形框架 theta = round(rect[2]) cood_x = round(rect[0][0]) cood_y = round(rect[0][1]) print"角度:%d" % theta print"目标像素坐标:%s,%s" %rect[0] cv2.imshow("frame", frame) if cv2.waitKey(1) ==27 : camera.release() cv2.destroyAllWindows()
https://docs.opencv.org/3.4.3/d1/dee/tutorial_introduction_to_pca.html
# -*- coding: utf-8 -*-#!/usr/bin/env python# 鼠标点击显示hsv和grb值import cv2 import numpy as npimport imutilsimport timecamera=cv2.VideoCapture(0)while True: ret,frame = camera.read() #ret is boolean #判断是否成功打开摄像头 if not ret: print 'No Camera' break blurred = cv2.GaussianBlur(frame, (11, 11), 0) HSV=cv2.cvtColor(blurred,cv2.COLOR_BGR2HSV) #鼠标点击响应事件 def getposHsv(event,x,y,flags,param): if event==cv2.EVENT_LBUTTONDOWN: print("HSV is",HSV[y,x]) def getposBgr(event,x,y,flags,param): if event==cv2.EVENT_LBUTTONDOWN: print("Bgr is",frame[y,x]) cv2.imshow("HSV", HSV) cv2.imshow("frame", frame) cv2.setMouseCallback("HSV",getposHsv) cv2.setMouseCallback("frame",getposBgr) if cv2.waitKey(1) ==27 : camera.release() cv2.destroyAllWindows()
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
链接: .
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
去页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted blockvar foo = 'bar';
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
使用:---------:
居中
:----------
居左 使用----------:
居右 第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
一个具有注脚的文本。
Markdown将文本转换为 HTML。
您可以使用渲染LaTeX数学表达式 :
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式.
可以使用UML图表进行渲染。 . 例如下面产生的一个序列图::
这将产生一个流程图。:
我们依旧会支持flowchart的流程图:
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。注脚的解释
转载地址:http://efrof.baihongyu.com/