opencv的图像操作
Posted Photoelectric
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv的图像操作相关的知识,希望对你有一定的参考价值。
访问和修改像素值
OpenCV的图像是numpy.ndarray类型的多维数组,其中包含字节值
对于一个BGR图像,可以使用数组的方式去访问这些值,例如image[0,0,0]
第一个值表示y坐标(行),第二个值表示x坐标(列),第三个值表示颜色通道
访问像素值
import cv2
import numpy as np
if __name__ == '__main__':
img = cv2.imread('6.png')
px = img[100,100]
print(px) #返回[106 102 104]对应BRR
grayimg = cv2.imread('gray.png')
px = grayimg[100,100,0] #灰度值只显示亮度
print(px)
修改像素值
1 |
>>> img[100,100] = [255,255,255] |
PS:对于单个像素值访问和修改,更好的方法是使用array.item()
和 array.itemset()
1 |
img = cv2.imread('6.png') |
访问图像属性
1 |
img = cv2.imread('6.png') |
选定范围
1 |
img[100:200, 100:500] #100行到200行,100列到500列的像素范围 |
分割和合并图像通道
b,g,r = cv2.split(img) #需要时间很多,应尽可能使用Numpy进行索引
img = cv2.merge((b,g,r))
#or b = img[:,:,0]
img[:,:,2] = 0 #让所有红色像素等于0
注,本篇为转载文章,原作者为Clicker
原文链接 http://nonexistent.tech/2018/05/14/opencv的图像操作/
以上是关于opencv的图像操作的主要内容,如果未能解决你的问题,请参考以下文章
pyhton—opencv直线检测(HoughLines)找到最长的一条线
OpenCV的核心操作 —— 图像的基本操作+图像上的算术运算
opencv学习笔记opencv加载图像修改图像显示图像保存图像以及代码举例