一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食. 二.目的 本篇文章将对Python下的opencv接口函数及PIL(Pillow)函数的常用部分进行逐个运行并计时(多次测算取平均时间和最短时间,次数一般在100次以上),并简单使用numba.ctypes.cython等方法优化代码. 三.测试方法及环境 1.硬件 CPU:Intel(R) C…
前言关于opencvOpenCV 是 Intel 开源计算机视觉库 (Computer Version) .它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 C 函数的跨平台的中.高层 API .它不依赖于其它的外部库 —— 尽管也可以使用某些外部库. OpenCV 对非商业应用和商业应用都是免费 的.同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(grap…
读取并显示图像 如果读取图像首先要导入OpenCV包,方法为: import cv2 读取并显示图像 img = cv2.imread("C:\test1.jpg") OpenCV目前支持读取bmp.jpg.png.tiff等常用格式.更详细的请参考OpenCV的参考文档. 接着创建一个窗口 cv2.namedWindow("Image") 然后在窗口中显示图像 cv2.imshow("Image", img) 按键等待 waitKey() 这个…
字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', ', 'sex':'男' } msg = { 'user01':'Longzeluola', 'user02':'xiaozemaliya', 'user03':'cangjingkong' } 字典存储数据的时候,采取的是key:value的形式,是一组无序的存储.在需要的时候通过key就能够快速的获取value. msg = { 'user01':'Longzeluola', 'user02…
图片的像素 像素:组成图片的单位 RGB:颜色由 RGB三种颜色组成 颜色深度:对于8bit的颜色深度来说,它可以表示的颜色范围是 0 ~ 255,对于RGB图片来说,8位颜色深度可以表示 (2^8)^3 种颜色 宽高:图片横向与纵向的像素点个数 大小:宽 * 高 * 3 * 8 bit = xxx bit alpha:有些图片还会有一个alpha通道,描绘图片的透明度信息 常见颜色存储格式:RGB.BGR 像素操作 获取一个具体点的像素值: r, g, b = img[x, y] 写入一个颜色…
PIL2numpy and numpy2PIL from PIL import Image import numpy image = Image.open('timg.jpeg')# image is a PIL image array = numpy.array(image) # array is a numpy array image2 = Image.fromarray(array)# image2 is a PIL image PIL2opencv import cv2 from PIL…
find: 根据指定字符串获取对应的下标, 如果找不到对应的数据返回-1, 这里的-1表示没有找到数据 my_str = "hello" # find: 根据指定字符串获取对应的下标, 如果找不到对应的数据返回-1 index = my_str.find("e") print(index) 新的用法,在指定范围里面查找数据的下标  1. 要查找的数据  2. 开始下标  3. 结束下标(不包含) index = my_str.find("l",…
list = [1,2,3,4,5,6,7,8,9,0,0,0,0,0] listSet = list.set(list)#将列表中的数据进行去重处理 此时listSet中的数据为[1,2,3,4,5,6,7,8,9,0] index = list.index(2)#返回数据元素首先出现的位置,如果list中没有这个元素则返回一个错误 此时index是1 [[0 for i in range(8)]for j in range(6)]#初始化一个6行8列的列表,其中各个元素皆为0 在二维列表赋值…
(1)find 查找 格式:mystr.find(str, start, end) 例如: mystr.find(str, start=0, end=len(mystr)) 作用:检测str是否包含在mystr中,如果是则返回开始值的索引,否则返回 -1. 注意:如果未指明起始索引start和结束索引end,默认是从0到最后. 未指明起始索引start跟结束索引end, 且str是存在于mystr中. 指明起始索引跟结束索引,且str不在mystr[0:10]中出现.即str不存在. (2)in…
一.字符串运算符 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python": 操作符 描述 实例 + 字符串连接 >>>a + b 'HelloPython' * 重复输出字符串 >>>a * 2 'HelloHello' [] 通过索引获取字符串中字符 >>>a[1] 'e' [ : ] 截取字符串中的一部分 >>>a[1:4] 'ell' in 成员运算符 - 如果字符串…