PythonCV2的一些基本操作

Posted KinoLogic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PythonCV2的一些基本操作相关的知识,希望对你有一定的参考价值。

·导入:
import cv2

·读取图片:
img = cv2.imread(\'路径\')

使用函数cv2.imread(filepath,flags)读入一副图片
filepath:要读入图片的完整路径
flags:读入图片的标志
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
import numpy as npimport cv2img = cv2.imread(‘1.jpg’,cv2.IMREAD_GRAYSCALE)

·获取图片大小:
x, y, z = img.shape

·缩放图片:
cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)
具体参数:

InputArray src 输入图片
OutputArray dst 输出图片
Size 输出图片尺寸
fx, fy 沿x轴,y轴的缩放系数
interpolation 插入方式
INTER_NEAREST 最近邻插值
INTER_LINEAR 双线性插值(默认设置)
INTER_AREA 使用像素区域关系进行重采样。
INTER_CUBIC 4x4像素邻域的双三次插值
INTER_LANCZOS4 8x8像素邻域的Lanczos插值

举个例子:

img_test = cv2.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)
img_test = cv2.resize(img_test, (0, 0), fx=4, fy=4, interpolation=cv2.INTER_NEAREST)

·展示图片:

cv2.imshow(\'窗口名\', img)
cv2.waitKey()
cv2.destroyAllWindows()

·灰度图彩图转换:
RGB转灰度:
img2 = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
灰度转RBG:
img3 = cv2.cv2Color(img, cv2.COLOR_GRAY2RGB)

·解决关闭窗口后程序不停止的问题:还没找到

·保存图片:
cv2.imwrite(filepath, img, flag)
filepath: 保存路径
img: 图像
flag:参数
可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别。默认为3.
注意:cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小。

·路径拼接:
os.path.join()
os.path.join()函数:连接两个或更多的路径名组件
1.如果各组件名首字母不包含’/’,则函数会自动加上
2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾

·补0

\'\'\'
原字符串左侧对齐, 右侧补零:
\'\'\'
str.ljust(width,\'0\') 
input: \'789\'.ljust(32,\'0\')
output: \'78900000000000000000000000000000\'


\'\'\'
原字符串右侧对齐, 左侧补零:
方法一:
\'\'\'
str.rjust(width,\'0\') 
input: \'798\'.rjust(32,\'0\')
output: \'00000000000000000000000000000798\'
\'\'\'
方法二:
\'\'\'
str.zfill(width)
input: \'123\'.zfill(32)
output:\'00000000000000000000000000000123\'
\'\'\'
方法三:
\'\'\'
\'%07d\' % n
input: \'%032d\' % 89
output:\'00000000000000000000000000000089\'

·循环:
for i in range x
for i in range(3):0 1 2
for i in range(1, 3):1 2

以上是关于PythonCV2的一些基本操作的主要内容,如果未能解决你的问题,请参考以下文章

如何有条件地将 C 代码片段编译到我的 Perl 模块?

python cv2在多个图像中错误地检测正方形

一些恶心的代码片段

当 ViewPager 中的片段出现和消失时如何执行一些代码

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

创建自己的代码片段(CodeSnippet)