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中__call__方法示例分析
Oct 11 Python
python中正则表达式的使用方法
Feb 25 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
Apr 05 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
Python自定义一个异常类的方法
Jun 27 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
Python @property及getter setter原理详解
Mar 31 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
python中filter,map,reduce的作用
Jun 10 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
DIY实用性框形天线
2021/03/02 无线电
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php常量详细解析
2015/10/27 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
node.js中watch机制详解
2014/11/17 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python super()函数的基本使用
2020/09/10 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
如何利用find命令查找文件
2015/02/07 面试题
2014年教育实习工作总结
2014/11/22 职场文书
体育教师个人工作总结
2015/02/09 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL
Golang jwt身份认证
2022/04/20 Golang