python
sizhi_xht
心之所向,行必能至。
展开
-
对于图片倾斜做矫正处理
一 霍夫变换对于图片倾斜问题可通过霍夫变换进行矫正,霍夫变换主要是利用图片所在的空间和霍夫空间之间的变换,将图片所在的直角坐标系中具有形状的曲线或直线映射到霍夫空间的一个点上形成峰值,从而将检测任意形状的问题转化成了计算峰值的问题。即在图片所在的直角坐标系的一个直线,转换到霍夫空间便成了一点,并且是由多条直线相交而成,我们统计的峰值也就是该相交点的橡胶线的条数。 这么难以理解,下面将用霍夫直线检测具体解释一下为什么可以将检测任意形状问题转化成计算峰值问题。对图片建立直角坐标系,则图片中如...原创 2020-09-01 14:45:48 · 8319 阅读 · 0 评论 -
大津法Python实现
大津法Python实现1.简介在计算机视觉和图像处理中,大津法被用于自动获取图像的阈值,或者将灰度图像转换为二值化图像。该算法假设图像包含两个类别的像素(前景像素和背景像素),然后它计算一个最优的阈值用于分离前景和背景,使得前景和背景的类间方差最小。2.定义类间方差的计算公式:假设我们使用阈值T将灰度图像分割为前景和背景size:图像总像素个数u:图像的平均灰度w0:前景像素点占整幅图像大小的比例u0:前景像素点的平均值w1:背景像素点占整幅图像大小的比例u0:背景像原创 2020-09-01 14:44:16 · 3005 阅读 · 3 评论 -
分布式节点部署爬虫管理平台
管理平台可以实现在多个节点上跑爬虫任务的需求,也就是在分布式节点上管理爬虫。例如有多台服务器,需要在这些服务器集群上运行、监控、操作相关爬虫脚本,并集中统一查看和管理,这种应用场景就非常适合天生支持分布式管理的爬虫管理平台Crawlab。要让各个节点运行的Crawlab服务协同工作在同一个网络,只需要让这些服务连接到MongoDB和Redis数据库,而不需要暴露自己的IP和端口。 下图是一个多节点部署的示意图,展示了Crawlab分布式集群是如何工作的。每一个Crawlab服务都在一台服...原创 2020-09-01 14:28:41 · 777 阅读 · 0 评论 -
Python操作MongoDB进行文件存储
将图片、文档等存入mogodb中,需要用到两个模块,pymongo和gridfs,在存入过程中必须将文件转换为二进制的格式才能存入,存入mongoDB中会生成两个文件xxx.chunk 和xxx.files。GridFS是一种将大型文件存储在MongoDB的文件规范:数据库支持以BSON格式保存二进制对象。 但是MongoDB中BSON对象最大不能超过4MB。GridFS 规范提供了一种透明的机制,可以将一个大文件分割成为多个较小的文档。为实现这点,该规范指定了一个将文件分块的标准。每个文件都将原创 2020-09-01 14:26:31 · 2761 阅读 · 1 评论 -
Python 向csv存储中文数据,乱码怎么解决
直接上代码:import csvwith open('test.csv', 'a', newline='', encoding='utf-8-sig') as f: # utf-8格式 f_csv = csv.writer(f) f_csv.writerow(('名称', '日期', '地址', '价格')) # 标题信息 # f_csv.writerows(...原创 2020-04-13 17:55:10 · 1179 阅读 · 0 评论 -
使用cv2.findContours()函数时报 ValueError: not enough values to unpack (expected 3, got 2)
在import cv2包调用findContours函数时出现如下问题:ValueError: not enough values to unpack (expected 3, got 2)而我在调用函数时:image, contours, hierarchy = cv2.findContours(opened, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIM...原创 2020-03-14 14:34:53 · 487 阅读 · 0 评论 -
Win10下安装tesseract4.0并配置环境变量
1. 下载tesseract4.0tesseract版本下载地址:https://digi.bib.uni-mannheim.de/tesseract/windows系统选择32位或者64位下载即可;其它操作系统下面网址选择相应的版本。https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-wi...原创 2020-03-11 14:08:52 · 4177 阅读 · 1 评论 -
pythonan安装cv2
使用pip安装即可:pip install opencv-python当pip安装失败时,可以下载opencv_python-4.1.1.26-cp36-cp36m-win_amd64.whl文件安装。文件可以从`https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/ `下载,选择相应版本即可。下载成功后到文件路径下使用pip...原创 2019-11-01 15:22:14 · 321 阅读 · 0 评论 -
Python中Json库得dumps、loads、dump、load方法的使用
1. json.dumps() json.dumps()用于将dict类型的数据转成str类型,直接将dict类型的数据写入json文件中会发生异常,因此在将数据写入时需要用到该函数。2. json.loads() json.loads()用于将str类型的数据转成dict。3. json.dump() json.dump()用...原创 2018-08-18 23:22:24 · 408 阅读 · 0 评论 -
在ubuntu下安装pyspider
1、首先安装依赖库:#更新源sudo apt-get update #更新pip python -m pip install -U pip #安装依赖包sudo apt-get install python-dev sudo apt-get install python-distribute sudo apt-get install libcurl4-openssl-dev sudo apt-ge...原创 2018-07-06 12:03:12 · 755 阅读 · 0 评论 -
Anaconda创建、激活、退出、删除虚拟环境
在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。所以对虚拟环境进行创建、删除等操作需要使用conda命令。创建虚拟环境:使用 conda create -n your_env_name python=X.X(2.7、3.6等),anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_nam...原创 2018-07-08 23:36:11 · 357229 阅读 · 12 评论 -
python3 Queue(一个同步队列类)学习
python3中自带了queue所以不需要安装,queue模块实现多生产者,多用户队列。当在多线程之间必须安全地交换信息时,它在线程编程中特别有用。该Queue模块中的类实现了所有必需的锁定语义。这取决于Python中的线程支持的可用性; 该模块实现三种类型的队列,它们的区别仅在于检索条目的顺序。在FIFO(先来先服务)队列中,第一个添加的任务是第一个被检索的。在LIFO队列中,最近添加的条目是第原创 2017-12-08 00:31:40 · 1196 阅读 · 0 评论 -
学习python多线程的简单总结
python提供了两个多线程模块thread、threading,但是threading更加成熟,所以我直接学习的threading,接下来我们用一个例子来做说明:就用我们最常见的两件事来举例吧,同时进行吃饭和玩手机#-*- coding:utf-8 -*-#name:sizhiimport threadingfrom time import ctime,sleepdef eat原创 2017-12-08 14:05:58 · 2391 阅读 · 0 评论