当前位置: 首页 > news >正文

网站建设有限公司宁波网站建设的价格表

网站建设有限公司,宁波网站建设的价格表,网站建设论文的研究方法,免费查企业app排行榜文章目录 前言一、鼠标点击的角度测量二、二维码条形码识别 前言 一、鼠标点击的角度测量 首先导入一个带有角度的照片 然后下面的代码注册了一个鼠标按下的回调函数#xff0c; 还有一个点的数列#xff0c;鼠标事件为按下的时候就记录点#xff0c;并画出点#xff0c;… 文章目录 前言一、鼠标点击的角度测量二、二维码条形码识别 前言 一、鼠标点击的角度测量 首先导入一个带有角度的照片 然后下面的代码注册了一个鼠标按下的回调函数 还有一个点的数列鼠标事件为按下的时候就记录点并画出点由于点是画在图像上面的那么就要求了img是需要刷新的所以将他们放在while True里面 当有按键按下的的时候就把图片归为原来的以及清除列表的值。 按键的使用可以看这个文章 简述 cv2.waitKey(1)在有按键按下的时候返回按键的ASCII值否则返回-1 0xFF的按位与操作只取cv2.waitKey(1)返回值最后八位因为有些系统cv2.waitKey(1)的返回值不止八位 ord(‘q’)表示q的ASCII值 总体效果按下q键后break import cv2 import mathimg cv2.imread(jiaodu.png) pointslist []def mousepoints(event,x,y,flags,params):if event cv2.EVENT_LBUTTONDOWN:cv2.circle(img,(x,y),5,(0,0,255),cv2.FILLED)pointslist.append([x,y])print(pointslist) while True:cv2.imshow(image,img)cv2.setMouseCallback(image,mousepoints)keycc cv2.waitKey(1) 0xFFif keycc ord(q):pointslist []img cv2.imread(jiaodu.png)if keycc ord(c):exit()当在图像上点击的时候有红点当按下q的时候清除当按下c的时候退出 接着我们要做的就是每点击一下就会出现三角的边我们用size来做判断当取余后值为2的时候就说明要画一个直线当按下第三个点的时候要是第二条直线那么就elif size % 3 0 and size ! 0: 就可以得到啦 还是用了tuple()函数因为 cv2.line 需要点的坐标作为元组所以我们使用 tuple 函数将列表转换为元组。 使用到了画线函数cv2.line可以参考这篇文章 简述 cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → img img背景图 pt1直线起点坐标 pt2直线终点坐标 color当前绘画的颜色。如在BGR模式下传递(255,0,0)表示蓝色画笔。灰度图下只需要传递亮度值即可。 thickness画笔的粗细线宽。若是-1表示画封闭图像如填充的圆。默认值是1. lineType线条的类型 如8-connected类型、anti-aliased线条反锯齿默认情况下是8-connected样式idecv2.LINE_AA表示反锯齿线条在曲线的时候视觉效果更佳。 def mousepoints(event,x,y,flags,params):if event cv2.EVENT_LBUTTONDOWN:cv2.circle(img,(x,y),5,(0,0,255),cv2.FILLED)pointslist.append([x,y])size len(pointslist)if size % 3 2:cv2.line(img, tuple(pointslist[-2]), tuple(pointslist[-1]), (255, 0, 0), 2)# 当添加第三个点时使用第一个点和第三个点绘制线elif size % 3 0 and size ! 0:cv2.line(img, tuple(pointslist[-3]), tuple(pointslist[-1]), (255, 0, 0), 2)print(pointslist)现在我们还需要计算出直接使用math中的函数不过我们需要由梯度来求具体公式百度最终的代码 import cv2 import mathimg cv2.imread(jiaodu.png) pointslist []def mousepoints(event,x,y,flags,params):if event cv2.EVENT_LBUTTONDOWN:cv2.circle(img,(x,y),5,(0,0,255),cv2.FILLED)pointslist.append([x,y])size len(pointslist)if size % 3 2:cv2.line(img, tuple(pointslist[-2]), tuple(pointslist[-1]), (255, 0, 0), 2)# 当添加第三个点时使用第一个点和第三个点绘制线elif size % 3 0 and size ! 0:cv2.line(img, tuple(pointslist[-3]), tuple(pointslist[-1]), (255, 0, 0), 2)print(pointslist)def gradient(pt1,pt2):return (pt2[1]-pt1[1])/(pt2[0]-pt1[0])def getAngle(pointslist):pt1,pt2,pt3 pointslist[-3:]m1 gradient(pt1,pt2)m2 gradient(pt1,pt3)angr math.atan((m2 - m1)/(1(m1 * m2)))angd round(math.degrees(angr))cv2.putText(img,str(angd),(pt1[0]-40,pt1[1]),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),1)print(angd)while True:if len(pointslist) % 3 0 and len(pointslist) ! 0:getAngle(pointslist)cv2.imshow(image,img)cv2.setMouseCallback(image,mousepoints)keycc cv2.waitKey(1) 0xFFif keycc ord(q) or keycc ord(Q) :pointslist []img cv2.imread(jiaodu.png)if keycc ord(c) or keycc ord(C) :exit() 二、二维码条形码识别 需要安装库numpy和pyzbar numpy是anaconda自带的我们在终端输入 pip install pyzbar就可以进行下载了。 我们首先有一张有二维码的图片 import cv2 import numpy as np from pyzbar.pyzbar import decodeimg cv2.imread(qr.png)code decode(img) print(code)我们可以读取到图片中二维码的信息 [Decoded(datab’111111’, type‘QRCODE’, rectRect(left182, top381, width163, height164), polygon[Point(x182, y381), Point(x182, y545), Point(x345, y545), Point(x345, y381)], quality1, orie ntation‘UP’)] 其中data就是我们要的数据而polygon是边框点 我们只打印出二维码的数据信息 import cv2 import numpy as np from pyzbar.pyzbar import decodeimg cv2.imread(qr.png)for barcode in decode(img):print(barcode.data)其中的b是编码 import cv2 import numpy as np from pyzbar.pyzbar import decodeimg cv2.imread(qr.png)for barcode in decode(img):mydata barcode.data.decode(utf-8)print(mydata) 这样就可以只得到数据信息。 现在我们调用摄像头cv2.VideoCapture(0)还需要在二维码周围画框cv2.polylines在周围显示 cv2.putText二维码的数据。 NumPy 和 OpenCV 的用法。 np.array(): NumPy 的 array 函数用于创建一个数组。在这里barcode.polygon 被转换成一个 NumPy 数组。 [barcode.polygon]: 这个语法是创建一个包含 barcode.polygon 的列表。这在创建二维或者更高维度的数组时是常见的做法。 np.int32: 这是一个参数指定了新创建的数组的数据类型应该是 32 位整数。在图像处理中像素的坐标通常是整数。 pts: 这是一个变量用于保存新创建的数组。 所以pts np.array([barcode.polygon], np.int32) 这句话的作用是创建一个新的 NumPy 数组数组的元素来自 barcode.polygon并且这个数组的数据类型是 32 位整数。这通常用于处理图像比如 OpenCV 的多边形如轮廓等。 import cv2 import numpy as np from pyzbar.pyzbar import decodecap cv2.VideoCapture(0)while True:success,img cap.read()# img cv2.imread(qr.png)for barcode in decode(img):mydata barcode.data.decode(utf-8)print(mydata)pts np.array([barcode.polygon],np.int32)pts pts.reshape((-1,1,2))cv2.polylines(img,[pts],True,(255,0,255),5)pts2 barcode.rectcv2.putText(img,mydata,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,0.9,(255,0,255),2)cv2.imshow(result,img)keycc cv2.waitKey(1)if keycc ord(c) or keycc ord(C) :exit()
http://www.pierceye.com/news/73074/

相关文章:

  • 网站建设体会中国建设劳动协会网站
  • 如何做一个简单的网站代练中介网站有得做吗
  • 建个公司网站需要多少钱注册会计师报名条件
  • 怎样用自己的电脑做网站wordpress设置登陆口
  • 房地产培训网站建设wordpress 注册密码
  • 单位门户网站是什么建设电商网站流程
  • 先建网站还是先做网页东坑镇网站建设
  • 李沧网站建设电话网站开发合同官司
  • 可以提供排版的网站app开发需要哪些知识
  • asp网站设计代做空壳网站主体注销
  • 陵水媒体建站哪家好wordpress最大文件
  • 建设工程询价网站有哪些个人网站的搭建
  • 山西众邦建设集团网站ps在线网页版
  • 网站建设定制网站建设公司哪家好专业郑州网站建设
  • 深圳做网站的wordpress调用排序从大到小
  • 百度电脑版登录网站企业管理公司介绍
  • dw做的网站怎么上传图片网站建设diy
  • 建个网站需要多少钱费用下载小程序安装
  • 外贸网站建设推广公司前景如何5g天天奭5g天天运动网站代码
  • 自己做网站好还是购买网站好logo制作在线
  • 建设网站长沙撤销网站备案
  • 江苏城乡住房建设部网站外贸推广系统
  • 大名县建设局网站杭州网站建设公司费用
  • 广东省高水平建设专业网站广西建网站哪家好
  • 重庆知名网站建设公司邹城网站建设哪家便宜
  • 网站与微信区别网站安全建设目的是
  • 如何开淘宝店做国外网站flashfxp与Wordpress
  • 只会网站开发能创业吗潍坊网站设计好处
  • 廊坊哪里有做阿里巴巴网站的抖音小程序入驻
  • 高明专业网站建设报价做美食网站的优势