上一篇开了一个头,这一篇我们继续

提醒一点:上一篇我们用 'import cv2.cv2 as cv',由于本地机器问题,cv2无法出现提示导致。为了一面引起读者的歧义,接下来的所有篇幅我直接 import cv2来进行说明。

二值图像及灰度图像

OpenCv最小的数据类型时无符号的8位二进制数,其最小值是0,最大值是255.因此,OpenCv中没有仅用一位二进制数表示二值图像的一个像素值(0或1)的数据类型。它使用0位二进制数最小值0表示二值图像的黑色,使用8位二进制数的最大值255表示二值图像中的白色。因此,可以将二值图像理解为是一个特殊的灰度图像,像素仅有最大值255和最小值0.

我们来尝试用Numpy模拟一个80*80的全黑图像

import cv2
import numpy as np
img = np.zeros((80,80),dtype = np.uint8)
print('img:\n',img)
cv2.imshow('black_picture',img)
cv2.waitKey()

首先看img的数组内容:

再看imshow的窗口内容

此时我们改变img数组中的部分数值,从0(黑色)变成255(白色):

img[5:15,5:15] = 255
cv2.imshow('black_picture2',img)
cv2.waitKey()

此时弹出来了改变后的图

可以看出,第5~15行,5~15列交界处变成了一个白色的方块。

彩色图像

Opencv在处理RGB模式的彩色图像时,会按照行方向分别读取该RGB图像像素点的B通道,G通道,R通道的像素值,并将像素值以行为单位储存在ndarray的列中。例如,有一副大小为R行*C列的原始BGR模式的三位数组形式存储,可以使用表达式访问数组内的值

例:使用img[0,0,0]访问img图像B通道内第0行第0列上的像素点。其中:

第一个索引表示第0行

第二个索引表示第0列

第三个索引表示第0个颜色通道。

综上所述,如果有一副红色图像,则img[0,0] = [0,0,255];img[0,0,1] = 0

让我们接下来做一个实例:

import cv2
img = cv2.imread('D:/PixC/1.jpg')
print('img[0,0] = ',img[0,0])
print('img[0,0,0] = ',img[0,0,0])
print('img[0,0,1] = ',img[0,0,1])
print('img[0,50] = ',img[0,50])

得到这样的结果

img[0,0] =  [90 51 42]
img[0,0,0] =  90
img[0,0,1] =  51
img[0,50] =  [90 51 42]

可以看到,每个点的值以及每一个像素通道的值。于是我们再尝试着画图

img[0:10,0:50] = [0,0,255]    #R
img[10:20,0:50] = [0,255,0]   #G
img[20:30,0:50] = [255,0,0]   #B
img[30:40,0:50] = [0,255,255]   #R&G
img[40:50,0:50] = [255,255,0]   #G&B
img[50:60,0:50] = [255,255,255]   #R&Gcv2.imshow('another',img)
cv2.waitKey()

接着我们就得到了这样一张图

顺便复习了一下三原色以及叠加后会变成什么颜色

Python图像识别-Opencv02 二值图像、灰度图像以及彩色图像相关推荐

  1. OpenCV学习笔记02--图像像素处理--二值图像、灰度图像、彩色图像像素的处理、numpy.array中的对应的函数

    目录 (一)灰度图像像素处理 (二)彩色图像像素处理 (三)numpy.array库在图像处理中的应用 (四)查看图像的属性信息 接着笔记01继续总结,当我们读取一幅图像的时候,一般为二值图像.灰度图 ...

  2. Python灰度图像和彩色图像的读取、显示。图像求反。

    方法一 #灰度图像和彩色图像的读取.显示.图像求反. #图像库导入 from PIL import Image # numpy约定是别名np import numpy as np#彩色图片位置 D:/ ...

  3. python 图像识别_python图像识别之图片相似度计算

    作者 | a1131825850疯子 来源 | Python爬虫scrapy 原文 | python图像识别---------图片相似度计算 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张 ...

  4. python图片识别-python图像识别

    python图像识别一般基础到的就是tesseract了,在爬虫中处理验证码广泛使用. 安装 安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径.环境变量甚至与linux不同的路径分 ...

  5. [Python图像识别] 四十九.图像生成之什么是生成对抗网络GAN?基础原理和代码普及

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  6. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. [Python图像识别] 四十六.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. Python图像识别

    Python图像识别 第一次写博客 首先说明,我只是一个刚开始学习python的学生,此博客纯粹记录我学习的过程,如果代码过程中有问题或者有更好的实现方法,希望业界各位大佬指点.评论 工具 pycha ...

最新文章

  1. redis cluster 添加 删除 重分配 节点
  2. 最简单的基于FFMPEG的封装格式转换器(无编解码)
  3. rt-thread 自动初始化机制分析-关于编译链接及段信息
  4. getDate()返回日期不一致问题引发的bug
  5. html计算x的y,HTML5画布:旋转时计算x,y点
  6. Visual studio 2005 恢復默認設置的方法
  7. PyTorch学习—19.模型的加载与保存(序列化与反序列化)
  8. centos 打包RPM包 ntopng
  9. 《WebGL编程指南》学习笔记——2.使用 canvas 元素
  10. [elixir! #0024] 引擎盖下, `Channel.push` 如何运作
  11. 开启Accessibility的快捷方式-3次home键或者侧边键
  12. 计算机无法连接路由器上网,为什么路由器无法连接到网络,但是路由器无法连接到互联网!...
  13. 7-1 寻找大富翁 (25 分)
  14. 【多模态】多模态摘要简述
  15. 台式cpu温度过高的两个原因及解决方法
  16. 申报高新技术企业需要注意的问题
  17. 特征值分解与奇异值分解原理与计算
  18. 数据结构与算法(Java) 54:数值累加
  19. Java基础篇面试题49问与答 (2021最新版)
  20. EM(期望最大化)聚类详细推导

热门文章

  1. 唱给挚爱高妹(大头妹)的歌~~~
  2. 服务器如何安装虚拟机,服务器如何安装虚拟机
  3. 雨滴网易云播放器html代码,求大佬帮忙看下 雨滴音乐插件怎么改代码关联网易云?...
  4. 入门oracleDBA面试题
  5. 视频编码:H.264编码
  6. matlab距离判别分析的应用
  7. 读书笔记:软件工程(7) - 软件过程模型:螺旋模型、迭代开发
  8. (五)Tomcat源码阅读:Connector组件分析
  9. 有关上拉输入、下了输入、推挽输出、开漏输出、复用开漏输出、复用推挽输出以及、浮空输入、模拟输入区别
  10. 计算机管理恢复分区,windows10系统隐藏恢复分区Recovery Image的方法