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


Posted in Python onJanuary 23, 2019

上个版本的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 相关文章推荐
python实现在sqlite动态创建表的方法
May 08 Python
python抓取文件夹的所有文件
Feb 27 Python
详解Python3的TFTP文件传输
Jun 26 Python
python cs架构实现简单文件传输
Mar 20 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
Nov 07 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
基于Python实现简单学生管理系统
Jul 24 Python
详解python中的异常和文件读写
Jan 03 Python
selenium+python自动化测试之环境搭建
Jan 23 #Python
在python带权重的列表中随机取值的方法
Jan 23 #Python
Appium+Python自动化测试之运行App程序示例
Jan 23 #Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 #Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 #Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 #Python
python读取图片任意范围区域
Jan 23 #Python
You might like
PHP调用Webservice实例代码
2011/07/29 PHP
php实现文件编码批量转换
2014/03/10 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
常用的javascript function代码
2008/05/23 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
JavaScript中的类继承
2010/11/25 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
护士自荐信怎么写
2013/10/18 职场文书
化学专业毕业生自荐信
2013/11/15 职场文书
职工运动会邀请函
2014/01/19 职场文书
运动会通讯稿500字
2014/02/20 职场文书
无犯罪记录证明
2014/09/19 职场文书
Python实现双向链表基本操作
2022/05/25 Python