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发布模块的步骤分享
Feb 21 Python
python中argparse模块用法实例详解
Jun 03 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
Python制作动态字符图的实例
Jan 27 Python
python实现维吉尼亚算法
Mar 20 Python
selenium处理元素定位点击无效问题
Jun 12 Python
python安装scipy的方法步骤
Jun 26 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
如何基于python测量代码运行时间
Dec 25 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 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 判断变量类型实现代码
2009/10/23 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
js传值 判断
2006/10/26 Javascript
js 编写规范
2010/03/03 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
利用Decorator如何控制Koa路由详解
2018/06/26 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
Python实现的检测网站挂马程序
2014/11/30 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
python操作列表的函数使用代码详解
2017/12/28 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
写给保洁员表扬信
2014/01/08 职场文书
2014年应急工作总结
2014/12/11 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
情况说明书怎么写
2015/10/08 职场文书
php 原生分页
2021/04/01 PHP
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle