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中map、any、all函数用法分析
Apr 21 Python
分享6个隐藏的python功能
Dec 07 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
利用python实现周期财务统计可视化
Aug 25 Python
Python中的相关分析correlation analysis的实现
Aug 29 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
Django前后端分离csrf token获取方式
Dec 25 Python
python制作图形界面的2048游戏, 基于tkinter
Apr 06 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 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判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP数组函数知识汇总
2016/05/12 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python修改Excel数据的实例代码
2013/11/01 Python
Python实现全局变量的两个解决方法
2014/07/03 Python
python中pass语句用法实例分析
2015/04/30 Python
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
python简单实现计算过期时间的方法
2015/06/09 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
python下载的库包存放路径
2020/07/27 Python
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
酒店个人求职信范文
2014/01/25 职场文书
学校节能减排方案
2014/06/13 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
学习心理学的体会
2014/11/07 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
2014年底个人工作总结
2015/03/10 职场文书
民事诉讼代理词
2015/05/25 职场文书
安全生产会议制度
2015/08/06 职场文书
培训后的感想
2015/08/07 职场文书
少先队中队工作总结
2015/08/14 职场文书
2016大一新生军训感言
2015/12/08 职场文书