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实现重建二叉树的三种方法详解
Jun 23 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
Python安装Flask环境及简单应用示例
May 03 Python
Flask-WTF表单的使用方法
Jul 12 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
python程序如何进行保存
Jul 03 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
python Pexpect模块的使用
Dec 25 Python
Python基础之Socket通信原理
Apr 22 Python
python基础之类方法和静态方法
Oct 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
PHP通用检测函数集合
2006/11/25 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python3里的super()和__class__使用介绍
2015/04/23 Python
pandas分区间,算频率的实例
2019/07/04 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
广州品高软件.net笔面试题目
2012/04/18 面试题
文明之星事迹材料
2014/05/09 职场文书
保险公司开门红口号
2014/06/21 职场文书
公司行政助理岗位职责
2015/04/11 职场文书
高中美术教学反思
2016/02/17 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python