合集-Python

摘要:学习一下GPT项目的相关使用和部署 一、GPT4ALL模型 Github:https://github.com/nomic-ai/gpt4all GPT4ALL项目部署简易,但是在运行体验上一般,并且是只调用CPU来进行运算,看官方文档介绍在嵌入式上有比较大的优势,但是目前个人对嵌入式方向接触不深, 阅读全文
posted @ 2023-10-24 18:50 VanGoghpeng 阅读(749) 评论(0) 推荐(0) 编辑
摘要:学习完基础的图像算法,开始接触OpenCV学习: 灰度图中,一个像素点上的灰度级需要一个字节(byte,2^8,8 bit)进行存储,此时的灰度图是二维的。而当我们需要转换为彩色图时,即三维,便会产生颜色通道(Channel),这个时候,一个像素点上的灰度级便会需要三个字节来进行存储。 可以借助笛卡 阅读全文
posted @ 2023-11-19 22:40 VanGoghpeng 阅读(362) 评论(0) 推荐(0) 编辑
摘要:接上一随笔,这次学习针对图像数据的访问(Numpy.array) 在OpenCV中,使用 imread() 方法可以访问图像,其返回值是一个数组,而根据传入的不同图像,将会返回不同维度的数组。 针对返回的图像数据,即数组,我们是可以进行操作的: 1 import cv2 2 3 # MyPic.pn 阅读全文
posted @ 2023-11-20 19:47 VanGoghpeng 阅读(135) 评论(0) 推荐(0) 编辑
摘要:一、读取写入视频文件 1 import cv2 2 3 # 创建一个视屏捕获对象 4 videoCapture = cv2.VideoCapture('AVI.avi') 5 6 # 获取视频的属性值,cv2.CAP_PROP_FPS获取视频帧率 7 fps = videoCapture.get(c 阅读全文
posted @ 2023-11-21 19:20 VanGoghpeng 阅读(719) 评论(0) 推荐(0) 编辑
摘要:Cameo项目介绍: 1、实时捕获并显示摄像头帧。 2、具备截图、保存视频和退出三个功能键。 要求存在文件:manager.py 和 cameo.py 一、manager.py 两个类:CaptureManager、WindowManager CaptureManager负责摄像头帧的捕获,编解码得 阅读全文
posted @ 2023-11-27 22:19 VanGoghpeng 阅读(245) 评论(0) 推荐(0) 编辑
摘要:对于使用OpenCV已有的算子,我们还可以自定义卷积核以达到不同的效果。 filters.py 1 import cv2 2 import numpy 3 4 """ 定义滤波器和类 """ 5 6 7 def strokeEdges(src, dst, blurKsize=7, edgeKsize 阅读全文
posted @ 2023-11-29 21:05 VanGoghpeng 阅读(168) 评论(0) 推荐(0) 编辑
摘要:Code: 1 import cv2 2 import numpy as np 3 4 img = np.zeros((200, 200), dtype=np.uint8) 5 img[50:150, 50:150] = 255 6 7 # ret, thresh = cv2.threshold(i 阅读全文
posted @ 2023-11-30 21:19 VanGoghpeng 阅读(301) 评论(0) 推荐(0) 编辑
摘要:外接矩形、外接圆: 1 import cv2 2 import numpy 3 4 img = cv2.imread('../img/img.png', -1) 5 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) 6 con 阅读全文
posted @ 2023-12-05 21:33 VanGoghpeng 阅读(514) 评论(0) 推荐(0) 编辑
摘要:针对遇到的各种复杂形状的主体,大多情况下,我们可以求得一个近似的多边形来简化视觉图像处理,因为多边形是由直线组成的,这样就可以准确的划分区域来便捷后续的操作。 cv2.arcLength() Method: 参数: curve:要计算周长的轮廓,可以是一个矩形、圆形、多边形等封闭曲线。 closed 阅读全文
posted @ 2023-12-06 21:40 VanGoghpeng 阅读(289) 评论(0) 推荐(0) 编辑
摘要:重新理解一下Canny方法: 参数: image:输入的图像。 threshold1:第一个阈值,用于检测边缘的强度梯度的下限。 threshold2:第二个阈值,用于检测边缘的强度梯度的上限。 apertureSize:Sobel算子的大小,可选值为3、5、7,默认值为3。 L2gradient: 阅读全文
posted @ 2023-12-07 22:27 VanGoghpeng 阅读(234) 评论(0) 推荐(0) 编辑
摘要:关于二维码和条形码的检测和识别,在OpenCV中已经有提供了对应的API,cv2.QRCodeDetector() | cv2.barcode_BarcodeDetector() ,相关的实现极其简单: 只需要上述短短三行代码即可检测二维码和条形码的位置并识别码内信息,相关parameter和ret 阅读全文
posted @ 2023-12-21 21:52 VanGoghpeng 阅读(1065) 评论(0) 推荐(1) 编辑
摘要:根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域。 cv2.moments(): 参数: array:表示输入图像的单通道数组。通常是灰度图像,可以是8位或浮点 阅读全文
posted @ 2023-12-21 23:42 VanGoghpeng 阅读(818) 评论(0) 推荐(1) 编辑
摘要:在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个“回”字从而达到定位二维码的目的,但是返回的hierarchy中的层级信息分别对应的是哪个轮廓却困扰了许久,查阅了很多资料最后还是自己手动找出了清晰的规律。 关于hierarchy返回的每一 阅读全文
posted @ 2023-12-26 20:40 VanGoghpeng 阅读(870) 评论(0) 推荐(0) 编辑
摘要:相较于BarCode,QRCode有明显的特征区域,也就是左上角、右上角、左下角三个”回“字区域,得益于hierarchy中,父子关系的轮廓是连续的(下标),所以这个时候我们就可以通过cv2.findContours()返回的hierarchy来进行定位。 我们直接上代码 1 import cv2 阅读全文
posted @ 2023-12-28 21:16 VanGoghpeng 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:接着练手图像处理例子 抛开网上截图进行OCR识别,更多的图源来自于我们的手机,相机等等设备,而得到的图片都并非是板正的,大多随手一拍的图源都是带有角度的,所以我们需要先将图像进行摆正。 首先先对图像进行预处理,上代码: 1 def edge_detect(image): 2 gray = cv2.c 阅读全文
posted @ 2024-01-02 20:41 VanGoghpeng 阅读(893) 评论(0) 推荐(1) 编辑
摘要:对于OCR技术在处理有角度有偏差的图像时是比较困难的,而水平的图像使用OCR识别准确度会高很多,因为文本通常是水平排列的,而OCR算法一般会假设文本是水平的。 针对上述情况,所以我们在处理有角度的图象时,需要将图像“摆正”,将使用到getPerspectiveTransform方法和warpPers 阅读全文
posted @ 2024-01-08 21:50 VanGoghpeng 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:通过上一篇博客,我们成功将有角度的图片进行“摆正”,接下来我们来提取图片中的文字。 我们使用Tesseract来处理图片并提取文字,相关下载安装请参考:Python下Tesseract Ocr引擎及安装介绍 - 黯然销魂掌2015 - 博客园 (cnblogs.com) 同时我们需要下载第三方Lib 阅读全文
posted @ 2024-01-12 20:00 VanGoghpeng 阅读(637) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示