当前位置: 首页 > 编程笔记 >

Python+OpenCV图片局部区域像素值处理改进版详解

阎博易
2023-03-14
本文向大家介绍Python+OpenCV图片局部区域像素值处理改进版详解,包括了Python+OpenCV图片局部区域像素值处理改进版详解的使用技巧和注意事项,需要的朋友参考一下

上个版本的Python OpenCV图片局部区域像素值处理,虽然实现了我需要的功能,但还是走了很多弯路,我意识到图片本就是数组形式,对于8位灰度图,通道数为1,它就是个二位数组,这样就没有必要再设置ROI区域,复制出来这块区域再循环提取像素存入数组进行处理了,可以直接将图片存入数组,再利用numpy进行切分相应的数组操作就可以了,这样一想就简单很多了,这篇我会贴出修改后的代码,直接省去了大段的代码啊。

ps:这次我重新装的opencv3.2.0版本,代码里面直接用cv2了

# 查看opencv版本,终端输入:
$ pkg-config --modversion opencv

cv_img_cv2.py

# -*- coding:utf-8 -*-
__author__ = 'lwp'

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
path ='/media/lwp/A/111111.jpg' # 图片路径
lwpImg = cv2.imread(path) # 加载图片
gray_lwpImg = cv2.cvtColor(lwpImg, cv2.COLOR_BGR2GRAY) # 转为灰度图

# 画目标区域,参数分别为图片、左上坐标、右下坐标、框的颜色、框线条的粗细
lwpImg = cv2.rectangle(lwpImg, (290, 0), (310, 327), (0, 255, 0), 2) 
# 显示标记后的图片
cv2.imshow('local_pixel', lwpImg) 

# 提取图片像素值到矩阵
pixel_data = np.array(gray_lwpImg)
# 提取目标区域
box_data = pixel_data[:, 290:310]
# 矩阵行求和
pixel_sum = np.sum(box_data, axis=1)

# 画图
x = range(576)
fig = plt.figure(figsize=(4, 2))
ax1 = fig.add_subplot(1, 1, 1)
ax1.bar(x, pixel_sum, width=1) # x为每个条形到x轴0点的距离,width为每个条的宽度
plt.xlabel('X')
plt.ylabel('Y')
plt.title('edge_filter')
plt.grid(True)
plt.show()

key = cv2.waitKey(0) & 0xFF
if key == ord('q'): # 按q关闭窗口
  cv2.destroyAllWindows()

效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Python OpenCV处理图像之图像像素点操作,包括了Python OpenCV处理图像之图像像素点操作的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下 0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第

  • 本文向大家介绍Python Opencv图像处理基本操作代码详解,包括了Python Opencv图像处理基本操作代码详解的使用技巧和注意事项,需要的朋友参考一下 1.图像读取 使用cv2.imread(filepath,flags)读入图像 filepath: 读入图像完整路径(绝对路径,相对路径) flags: 读入图像标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图,忽略al

  • 在OpenCV python中,假设我们用cv2.imread读取一个图像,并得到一个BGR numpy数组。接下来我们使用cv2.inrange命令生成一个掩码。掩模具有相同的宽度/高度,并且每个掩模像素要么是黑色的,要么是白色的。 我必须先将掩码转换成BGR图像吗?如果是,怎么做? 编辑:我不想像在将蒙版应用到彩色图像中那样将整个蒙版应用到图像上。另一种表达我所想要的方式:将面具视为一个黑白图

  • 这样一张9000*7000像素的图片该怎么样实现找出两个圆的区域。求大佬 这个只能得到有很多没用信息希望能得到这两个区域。。求大佬

  • @subpage tutorial_py_colorspaces_cn 学习如何将图像从一个颜色空间变换到另外一个。 另外,我们还将学习在一段视频中追踪一个有颜色的物体。 @subpage tutorial_py_geometric_transformations_cn 学习对图像进行不同的几何变换,像旋转、平移等等。 @subpage tutorial_py_thresholding_cn 学习

  • 本文向大家介绍python opencv进行图像拼接,包括了python opencv进行图像拼接的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python opencv进行图像拼接的具体代码,供大家参考,具体内容如下 思路和方法 思路 1、提取要拼接的两张图片的特征点、特征描述符; 2、将两张图片中对应的位置点找到,匹配起来; 3、如果找到了足够多的匹配点,就能将两幅图拼接起来,

  • 我有一个盒子的图像。我试图检测角点并从圆圈中标记这些角点。我正在为此使用以下代码:

  • 本文向大家介绍Python OpenCV处理图像之图像直方图和反向投影,包括了Python OpenCV处理图像之图像直方图和反向投影的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python OpenCV图像直方图和反向投影的具体代码,供大家参考,具体内容如下 当我们想比较两张图片相似度的时候,可以使用这一节提到的技术 直方图对比 反向投影 关于这两种技术的原理可以参考我上面贴的