opencv像素操作,opencv读取像素值
像素是计算机视觉中图像的一个重要属性。它们是代表图像中特定空间内光线颜色强度的数值,是图像中最小的数据单位。本文将详细介绍如何在OpenCV中使用图像像素。有兴趣的可以看看。
00-1010切片操作,以获得感兴趣区域的坐标值。使用切片操作裁剪图像。1.加载并显示原始图像。2.获得图像的空间维度。3.裁剪图像。4.使用大小将图像的一部分设置为特定颜色。摘要
像素是计算机视觉中图像的一个重要属性。它们是代表图像中特定空间内光线颜色强度的数值,是图像中最小的数据单位。
图像中的像素总数是高度、宽度和通道的乘积。
由于OpenCV中的图像是作为像素值的Numpy数组读取的,因此可以通过数组切片操作获得并处理由该区域的像素表示的图像区域。
切片用于检索序列子集,如列表、元组和数组,因此它可用于获取图像区域的像素值以进行编辑、格式化或裁剪。
目录
脚本:使用切片操作获得列表的子集。
#按字母顺序排列列表
字母=[a , b , c , d , e]
#前三个字母
first_three=字母[:3]
#最后三个字母
last_three=字母[-3:]
#获取第二到第四个字母
第二到第四个=字母[1:4]
#显示结果
print(前三个字母: ,first_three)
打印(最后三个字母: ,last_three)
打印(第二至第四个字母: ,第二至第四个)
请注意,我使用索引值来分割字母顺序列表。例如,传递起始索引1(列表中第二个字母的索引)和4将返回从第二个值到第四个值的列表片段。
因为索引值以这种方式用于检索子集,所以它们也用于定位和检索图像中的感兴趣区域。
以图像中的某个区域为目标的切片由图像的两个轴(水平轴(x)和垂直轴(y))的起始值和结束值定义,格式如下:
图像[startY: endY,startx:endX]
它返回所需感兴趣区域的(图像像素的)Numpy数组。
那么,我们如何确定感兴趣区域的X轴和Y轴的起始值和结束值?
这些值(startX,endX,startY,endY)是绘制感兴趣区域的坐标值。
在使用OpenCV display时,这些值不会显示在图像旁边,但我们可以使用其他应用程序(如Photoshop、Corel Draw、Paint e.t.c)或其他python可视化库(如Matplotlib)来显示具有x和y坐标值的图像。
一如既往,这在实践中更容易理解。让我们使用matplotlib来显示一个图像。Pyplot,从中我们可以检索坐标,这些坐标映射出图像中感兴趣的目标区域。
我用加纳共和国国旗的图像来证明这一点。这里,我的目标是图像中黑星周围的区域。
切片操作
使用Matplotlib加载和显示图像。
#导入matplotlib的绘图
将matplotlib.pyplot作为plt导入
#加载并显示原始图像
image=PLT . im read( Flag _ of _ Ghana . png )
#显示图片
plt.imshow(原始,图像)
plt.plot()
输出:加载的图像及其x和y坐标。
如您所见,plt.imshow函数返回读取的图像以及x和y轴的坐标值。
然后,我们可以检索感兴趣区域的开始和结束坐标值(黑星)。
追踪黑星区域的坐标值
这张图片展示了如何追踪黑星周围区域的坐标。
我们可以从图像中检索坐标(st
artY(y1)、endY(y2)、startX(x1)、endX(x2))。然后,我们可以定义两个轴的起点和终点坐标,并裁剪为:
image[y1: y2, x1:x2]
if we get y1, y2 = [145, 295] and x1, x2 = [245, 400]
那么绘制出黑星的区域将是:
black_star = image[145:295, 245:400]
这将返回映射感兴趣区域(本例中为黑星)的像素值(在Numpy数组中)。
现在,我们可以利用这种技术对图像区域进行定位和切片,以进行各种图像处理。
使用切片操作裁剪图像
1.加载并显示原始图像
# 导入matplotlib的plot
输出:显示加载的图像。
2.获取图像的空间维度
# 获取图像的空间尺寸
输出:显示图像的空间尺寸。
3.裁剪图像
裁剪出图像的左上角
# 裁剪图像的左上角
输出:图像的左上角
裁剪出图像的右上角
# 裁剪右上角
输出:图像的右上角
裁剪出图像的左下角
# 裁剪左下角
输出:图像的左下角
裁剪出图像的右下角
# 裁剪右下角
输出:左下角。
4.使用尺寸将部分图像设置为特定颜色。
# 设置原始图像的左上角为绿色
输出:将左上角设置为绿色
总结
图像像素是表示图像中颜色强度的数值。使用OpenCV获取和设置不同图像处理的图像像素的过程基于Numpy阵列的切片操作。切片像素值在裁剪、重置、复制或增强图像时非常有用。
以上就是详解在OpenCV中如何使用图像像素的详细内容,更多关于OpenCV图像像素的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。