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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
Python实现备份文件实例
Sep 16 Python
python django事务transaction源码分析详解
Mar 17 Python
Python实现的用户登录系统功能示例
Feb 05 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
如何用python批量调整视频声音
Dec 22 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 Python
baselines示例程序train_cartpole.py的ImportError
May 20 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如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
python多线程http下载实现示例
2013/12/30 Python
介绍Python中的__future__模块
2015/04/27 Python
python连接字符串的方法小结
2015/07/13 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
python面试题之列表声明实例分析
2019/07/08 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
公司经理聘任书
2014/03/29 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
经理岗位职责
2015/02/02 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
技能培训通讯稿
2015/07/18 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
Python基础之pandas数据合并
2021/04/27 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS