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简单获取数组元素个数的方法
Jul 13 Python
Python实现翻转数组功能示例
Jan 12 Python
python实现最长公共子序列
May 22 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
python中比较两个列表的实例方法
Jul 04 Python
Flask框架中request、请求钩子、上下文用法分析
Jul 23 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
Jan 06 Python
python获取栅格点和面值的实现
Mar 10 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 Python
如何解决.cuda()加载用时很长的问题
May 24 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Golang与python线程详解及简单实例
2017/04/27 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
python实现多进程代码示例
2018/10/31 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
python实现拼图小游戏
2020/02/22 Python
浅谈tensorflow 中的图片读取和裁剪方式
2020/06/30 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
材料物理专业个人求职信
2013/12/15 职场文书
小学班级口号
2014/06/09 职场文书
2014年加油站工作总结
2014/12/04 职场文书
党员检讨书范文
2014/12/27 职场文书
2016自主招生教师推荐信范文
2015/03/23 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers