2016-05-25 Li Shuai
也许你会偶然发现Python的多线程程序使用Ctrl-C杀不掉,必须拿到pid用kill -9才能干掉,研究这个问题的原因可以使得对Python多线程的信号处理及线程的退出机制有更好的理解。 假如有一个Python写成的用多线程模拟生产者-消费者的程序,代码如下: class Producer(threading.Thread): def run(self): global count while True: if cond.acquire(): if count > 1000: cond.wa 继续阅读 »
2016-06-18 Lu Huang
本节实现的是使用OpenCV里自带的函数,计算程序的执行时间。 获取系统时钟数 获取系统时钟频率 实现过程 初始时间 不再赘述,代码如下。 ``` python time start t1 = cv2.getTickCount() ``` 执行代码 我这里执行的是之前绘制直方图的代码,请参考我的博客和GitHub。 结束时间 获取程序结束时间。 ```python time end t2 = cv2.getTickCount() ``` 计算执行秒数 利用getTickFrequency()获取时钟频率。 python t = (t2-t1)/cv2.getTickFrequency() print 继续阅读 »
2016-12-02 LEo
平时工作中,有时候需要将自己写的Python脚本在Windows运行,但是若Windows没有安装Python,那么就不能直接运行Python脚本。本文介绍一种方法,通过PyInstaller工具将Python脚本打包成一个可执行文件,可以直接在Windows运行,不管Windows是否安装Python都可以运行该可执行文件,详细步骤如下: 继续阅读 »
2016-06-10 Lu Huang
本节实现的是使用OpenCV里自带的函数,将两幅图片按照特定的比例融合 实现过程 引用与读取图片 不再赘述,代码如下。 ```python import cv2 import numpy img1 = cv2.imread('test1.png') img2 = cv2.imread('test2.png') ``` 融合图片 利用addWeighted()函数,将图片1的比例设置为0.6,图片2的0.4,如下: python mg_mix = cv2.addWeighted(img1, 0.6, img2, 0.4, 0) 显示图片 分别显示两幅原图和融合后的图片: ```python cv2.imsh 继续阅读 »
2014-04-27 码农明明桑
缘由 最近在折腾一个小东西需要抓取网上的页面,然后进行解析,将结果放到数据库中。了解到Python在这方面有优势,便选用之。因为我有台服务器上面安装有mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里记录一下,大家共勉。 python中mysql的调用 百度之后可以通过MySQLdb进行数据库操作,查看文档,了解到python中提供了一个_mysql时直接实现了mysql的c语言API。MySQLdb是对其在更高一层的封装,因此,使用起来更加方便。我们可以使用_mysql,但更好的方法是使用MySQLdb more 安装中遇到的问题 在这个页面http://sourceforge.net/projec 继续阅读 »
2015-07-31 summer
1、yum install libjpeg-devel gcc gcc-c++ zlib-devel bzip2-devel openssl-devel xz-libs 2、下载python最新版2.7.10解压缩后进行安装 ``` tar -zxvf Python-2.7.10.tgz cd Python-2.7.10/ ./configure --prefix=/usr/local make all make install make clean make distclean 继续阅读 »
2016-06-04 Lu Huang
本节实现的是提取出彩色图像的三个通道。 打开一个彩色图片 利用系统函数分离三通道 自行分离三通道 显示显示三通道图片 实现过程 引用与打开图片 不再赘述,代码如下。 ``` python import cv2 import numpy img = cv2.imread("test.png") ``` 系统函数分离三通道 opencv里自带了分离三通道的函数split(),返回值依次是蓝色、绿色和红色通道的灰度图,代码如下: python b, g, r = cv2.split(img) cv2.imshow("Blue 1", b) cv2.imshow("Green 1", g) cv2.imshow("Red 继续阅读 »
2016-06-16 Lu Huang
本节实现的是使用OpenCV里自带的函数,检测出视频里图像中的蓝色和天蓝色、青色,比如我的手机背景、我衣服上的蓝色格子,墙砖的蓝色和学生证照片上的蓝色背景。 设置“蓝色”HSV范围 BGR转HSV 捕获摄像头视频 获取蓝色部分mask 图像按位与操作 显示蓝色部分图像 实现过程 定义视频对象 视频对象用于捕获摄像头视频流。 ``` python import cv2 import numpy as np cap = cv2.VideoCapture(0) ``` 设置HSV中蓝色、天蓝色范围 这里主要参考了这个博客,我设置的颜色范围如下。 ```python set blue thresh lower_blue= 继续阅读 »
2016-06-12 Lu Huang
本节实现的是使用OpenCV里自带的函数,绘制直线、长方形、圆形和椭圆。 绘制直线 绘制长方形 绘制圆形 绘制椭圆 添加文字 实现过程 引用与创建空图 不再赘述,代码如下。 ``` python import cv2 import numpy empty image img = np.zeros((512, 512, 3), np.uint8) ``` 绘制直线 使用opencv自带的line()函数绘制一条对角线,其声明如下: python cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) 其中各种参数的意义如下: img 继续阅读 »
2016-06-05 Lu Huang
本节实现的是提取出灰度图像和彩色图像的直方图。 显示灰度图像的灰度直方图 显示彩色图像各个通道的灰度直方图 在一幅图上显示三个通道的灰度直方图 实现过程 引用与打开图片 不再赘述,代码如下。 ``` python import cv2 import numpy img1 = cv2.imread("test1.jpg", 0) #灰度图像 img2 = cv2.imread("test2.jpg") #彩色图像 ``` 灰度图像直方图 opencv里自带了calcHist()函数,可以计算一幅图像中各个像素值出现的次数,其函数的各个参数如下: python hist = cv2.calcHist([i 继续阅读 »