Python OpenCV处理图像之图像像素点操作


Posted in Python onJuly 10, 2018

本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下

0x01. 像素

有两种直接操作图片像素点的方法:

第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB值。

第二种就是使用 OpenCV 提供的 Get1D、 Get2D 等函数。

推荐使用第一种办法吧,毕竟简单。

0x02. 获取行和列像素

有一下四个函数:

  • cv.GetCol(im, 0): 返回第一列的像素
  • cv GetCols(im, 0, 10): 返回前 10 列
  • cv.GetRow(im, 0): 返回第一行
  • cv.GetRows(im, 0, 10): 返回前 10 行

0x03. 批量处理

需要批量处理所有的像素点的时候,只需要使用for循环迭代处理就可以了:

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
 
for i in range(im.height):
 for j in range(im.width):
  im[i,j] # 这里可以处理每个像素点

还有一种迭代处理的方式是使用 LineIterator,不过在声明 LineIterator 的时候需要制定处理像素点的开始点和结束点。

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
li = cv.InitLineIterator(im, (0, 0), (im.rows, im.cols)) #So loop the entire matrix
 
for (r, g, b) in li:
 # 这里可以对每个像素点的 r g b 进行处理

娱乐一下, 随机获取 5000 个像素点,然后把颜色换成一个随机的值(salt):

import cv2.cv as cv
 
import random
 
# 这里也可以使用 Get2D/Set2D 来加载图片
im = cv.LoadImage("img/lena.jpg") 
 
for k in range(5000): #Create 5000 noisy pixels
 i = random.randint(0,im.height-1)
 j = random.randint(0,im.width-1)
 color = (random.randrange(256),random.randrange(256),random.randrange(256))
 im[i,j] = color
 
cv.ShowImage("Noize", im)
cv.WaitKey(0)

效果图:

Python OpenCV处理图像之图像像素点操作

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中使用mysql数据库详细介绍
Mar 27 Python
python利用socketserver实现并发套接字功能
Jan 26 Python
python 读入多行数据的实例
Apr 19 Python
Flask框架web开发之零基础入门
Dec 10 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python计算n的阶乘的方法代码
Oct 25 Python
Python list与NumPy array 区分详解
Nov 06 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
python如何删除文件、目录
Jun 23 Python
python开发一款翻译工具
Oct 10 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 #Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 #Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 #Python
python操作excel文件并输出txt文件的实例
Jul 10 #Python
深入浅析Python传值与传址
Jul 10 #Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 #Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 #Python
You might like
深入解析php中的foreach问题
2013/06/30 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
eclipse php wamp配置教程
2016/06/30 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
了解重排与重绘
2019/05/29 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
详解python字节码
2018/02/07 Python
Python的UTC时间转换讲解
2019/02/26 Python
python的依赖管理的实现
2019/05/14 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
Pytorch之保存读取模型实例
2019/12/30 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
劲霸男装广告词
2014/03/21 职场文书
中学生家长评语大全
2014/04/16 职场文书
施工协议书范本
2014/04/22 职场文书
营销团队口号
2014/06/06 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
高中化学教学反思
2016/02/22 职场文书