opencv学习笔记2

  • 图像处理基础

1.图像的基本表示方法
二值图像:
仅仅包含黑色和白色两周颜色的图像,将白色像素点处理为1,黑色像素点处理为0。
灰度图像
二值图像不够细腻
计算机将灰度处理为256个灰度级,用区间[0,255]来表示。255表示纯白色,0表示纯黑色。其余的数 值表示从黑到白之间不同级别的灰度。
彩色图像
不同的彩色空间表示方法虽然不同,但是各种彩色空间之间可以通过公式进行转换

2.像素处理
opencv最小的数据类型是无符号的8位数,因此opencv中并没有二值图像这种数据类型,二值图像是经过处理得到的,利用0表示黑色,255表示白色。
可以说二值图像为特殊的灰度图像。
可以使用img[0,0]访问图像的img的第0行和第0列的像素点
第一个索引表示行,第二个表示列

例子1

import cv2
import numpy as np
img = np.zeros((8,8),dtype=np.uint8)
print("img=\n",img)
cv2.imshow('one',img)
print("读取像素点img[0,3]=",img[0,3])
img[0,3] = 255
print('修改后的img= \n',img)
print("读取修改后的像素点img[0,3]=",img[0,3])
cv2.imshow('two',img)
cv2.waitKey()
cv2.destroyAllWindows()

例子2
读取灰度图像,并对其像素进行访问

import cv2
img = cv2.imread('src\lena.tiff',0)#0代表将图片调整为单通道灰度图像
cv2.imshow('before',img)
for i in range(10,100):for j in range(80,100):img[i,j] = 255
cv2.imshow('after',img)
cv2.waitKey()
cv2.destroyAllWindows()



2彩色图像
RGB模式的图像在读入opencv中进行处理时,会按照行方向一次读取该RGB图像的B,G,R通道,并将像素点以行为单位存储在ndarry的列中。

可以使用表达式访问数组中的值
img[0,0,0]访问图像的img的B通道第0行,第0列
第一个索引表示行
第二个索引表示列
第三个索引表示颜色通道

import cv2
import numpy as np
img = np.zeros((300,300,3),dtype=np.uint8)
img[:,0:100,0]=255
img[:,100:200,1]=255
img[:,200:300,2]=255
print('img=\n',img)
cv2.imshow('demo',img)
cv2.waitKey()
cv2.destroyAllWindows()

3使用numpy.array访问像素
item(行,列)和itemset(索引值,新值)函数

import cv2
import numpy as np
img = np.random.randint(10,99,size=(5,5),dtype=np.uint8)
print("img = \n",img)
print("像素点img.item(3,2)为",img.item(3,2))
img.itemset((3,2),255)
print("修改后的img.item(3,2)",img.item(3,2))
cv2.imshow('demo',img)
cv2.waitKey()
cv2.destroyAllWindows()

opencv学习笔记2相关推荐

  1. OpenCV 学习笔记03 boundingRect、minAreaRect、minEnclosingCircle、boxPoints、int0、circle、rectangle函数的用法...

    函数中的代码是部分代码,详细代码在最后 1 cv2.boundingRect 作用:矩形边框(boundingRect),用于计算图像一系列点的外部矩形边界. cv2.boundingRect(arr ...

  2. opencv学习笔记(二):基于肤色的人手检测

    opencv学习笔记(二):基于肤色的人手检测 原文:http://blog.csdn.net/wzmsltw/article/details/50849810 先写了人手的检测程序,下一步基于检测程 ...

  3. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  4. OpenCV学习笔记大集锦

    转载自: OpenCV学习笔记大集锦 – 视觉机器人 http://www.cvrobot.net/collect-opencv-resource-learn-study-note-chinese/ ...

  5. OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast

    OpenCV学习笔记(五十六)--InputArray和OutputArray的那些事core 看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray ...

  6. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  7. OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算

    OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...

  8. OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co

    OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...

  9. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  10. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

最新文章

  1. 【Qt】通过QtCreator源码学习Qt(三):linux平台的信号、程序崩溃处理
  2. iOS开发网络篇—NSURLConnection基本使用(一)
  3. c# applibrary实现一个Sheet表中存放多张DataTable数据
  4. 线程间协作的两种方式:wait、notify、notifyAll和Condition
  5. java valueof_Java Short类valueOf()方法及示例
  6. 【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)【中】
  7. 推理集 —— 物品与动物
  8. “带锁的门”问题,并有c语言和python代码运行效率对比
  9. 干货,分享!后台信息管理HTML静态网页模版
  10. 容安馆札记 606-610则 笺疏
  11. flash player所有版本下载地址
  12. win10装debian 双系统_如何安装win10和linux [ubuntu14]双系统
  13. SiebelAdapter--具体干事的类,
  14. 可微分神经计算机DNC
  15. 如何选择适合你的兴趣爱好(六),钢琴
  16. 值此“程序员节”之际,祭奠那位猝死的程序员兄弟
  17. 程序设计思想与方法 笔记
  18. java 生成电子合同_java实现电子合同签名
  19. 老弟,来了?VUE+Nuxt.js+Koa+Vuex入门教程(一)仿写一个cnode网站
  20. 大型三甲医院医学影像PACS系统源码(三维重建)

热门文章

  1. 突发!Nginx 之父被拘留,原因竟然是“接私活儿”?
  2. 撸完这些JVM知识点,明天就去面试阿里P6+
  3. 阿里技术专家麒烨:修炼测试基本功
  4. 第一批90后已经30岁了,更扎心的是…
  5. 2020年度JEECG开发者大赛,开发插件赚外块还能赢大奖!!
  6. JimuReport积木报表,一个好用的开源免费的报表平台!
  7. Linux下如何安装.cer证书
  8. Group by 第二选择 OVER
  9. Keras:Transfer learning
  10. 数据产品-数据可视化大作“数据大屏”