前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV-Python学习(5)—— OpenCV 图像像素的读写操作

OpenCV-Python学习(5)—— OpenCV 图像像素的读写操作

作者头像
Rattenking
发布2022-10-24 15:58:51
1K0
发布2022-10-24 15:58:51
举报
文章被收录于专栏:RattenkingRattenking

1. 学习目标

  1. 图像像素的读写操作;
  2. 图像像素的遍历;

2. 像素的理解

  1. 像素实际大小:dpi * inches = 像素总数;
  2. ppi (pixels per inch):图像的采样率 (在图像中,每英寸所包含的像素数目)
  3. dpi (dots per inch): 打印分辨率 (每英寸所能打印的点数,即打印精度)

3. OpenCV 中像素

  1. 灰度图像排序
在这里插入图片描述
在这里插入图片描述
  1. 彩色图像排序
在这里插入图片描述
在这里插入图片描述

4. 像素的访问与赋值

4.1 获取图像维度信息;image.shape
4.1.1 灰度图像维度信息
  1. 获取灰度图像维度信息代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg",0)
  print(image.shape)

if __name__ == "__main__":
  get_image_info()
  1. 获取灰度图像维度信息结果
在这里插入图片描述
在这里插入图片描述
4.1.2 彩色图像维度信息
  1. 获取彩色图像维度信息代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg")
  print(image.shape)

if __name__ == "__main__":
  get_image_info()
  1. 获取彩色图像维度信息结果
在这里插入图片描述
在这里插入图片描述
4.2 图像访问像素:image[row,col];
4.2.1 灰度图像访问像素
  1. 获取灰度图像访问像素代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg",0)
  print(image[100,100])

if __name__ == "__main__":
  get_image_info()
  1. 获取灰度图像访问像素结果
在这里插入图片描述
在这里插入图片描述
4.2.2 彩色图像访问像素
  1. 获取彩色图像访问像素代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg")
  print(image[100,100])

if __name__ == "__main__":
  get_image_info()
  1. 获取彩色图像访问像素结果
在这里插入图片描述
在这里插入图片描述
4.3 图像赋值像素:image[row,col] = xxx;
4.3.1 灰度图像赋值像素
  1. 获取灰度图像赋值像素代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg",0)
  image[0:100,0:100] = 255
  cv.imshow('change 0 - 100:', image)
  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  get_image_info()
  1. 获取灰度图像赋值像素结果
在这里插入图片描述
在这里插入图片描述
4.3.2 彩色图像赋值像素
  1. 获取彩色图像赋值像素代码
代码语言:javascript
复制
import cv2 as cv

def get_image_info():
  image = cv.imread("./images/butterfly.jpg")
  image[0:100,0:100] = (255,0,0)
  cv.imshow('change 0 - 100:', image)
  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  get_image_info()
  1. 获取彩色图像赋值像素结果
在这里插入图片描述
在这里插入图片描述
4.4 注意
  1. 灰度图像是单通道,像素赋值范围[0-255];
  2. 彩色图像是三通道,像素赋值范围([0-255],[0-255],[0-255]);(b,g,r)
  3. 不能将【三通道的彩色图像】像素赋值给【单通道的灰度图像】,会报错:
在这里插入图片描述
在这里插入图片描述

5. 像素遍历

OpenCV 像素遍历的本质就是numpy数组访问!!!

5.1 彩色图像像素遍历
5.1.1 彩色图像像素遍历代码
代码语言:javascript
复制
import cv2 as cv

def visit_pixel_demo():
  image = cv.imread("./images/butterfly.jpg")
  cv.imshow('original:', image)
  h,w,c = image.shape

  for row in range(h):
    for col in range(w):
      b,g,r = image[row,col]
      image[row,col] = (255-b,255-g,255-r)
  cv.imshow('visited:', image)
  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  visit_pixel_demo()
5.1.2 彩色图像像素遍历结果
在这里插入图片描述
在这里插入图片描述
5.2 灰度图像像素遍历
5.2.1 灰度图像像素遍历代码
代码语言:javascript
复制
import cv2 as cv

def visit_pixel_demo():
  image = cv.imread("./images/butterfly.jpg",0)
  cv.imshow('original', image)
  h,w = image.shape

  for row in range(h):
    for col in range(w):
      p_value = image[row,col]
      image[row,col] = 255 - p_value
  cv.imshow('visited', image)
  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  visit_pixel_demo()
5.2.2 灰度图像像素遍历结果
在这里插入图片描述
在这里插入图片描述

6. 总结

  1. 图像维度信息:image.shape;
  2. 访问图像像素:image[row,col];
  3. 图像赋值像素:image[row,col] = xxx;
  4. OpenCV 像素遍历的本质就是numpy数组访问!!!
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 学习目标
  • 2. 像素的理解
  • 3. OpenCV 中像素
  • 4. 像素的访问与赋值
    • 4.1 获取图像维度信息;image.shape
      • 4.1.1 灰度图像维度信息
      • 4.1.2 彩色图像维度信息
    • 4.2 图像访问像素:image[row,col];
      • 4.2.1 灰度图像访问像素
      • 4.2.2 彩色图像访问像素
    • 4.3 图像赋值像素:image[row,col] = xxx;
      • 4.3.1 灰度图像赋值像素
      • 4.3.2 彩色图像赋值像素
    • 4.4 注意
    • 5. 像素遍历
      • 5.1 彩色图像像素遍历
        • 5.1.1 彩色图像像素遍历代码
        • 5.1.2 彩色图像像素遍历结果
      • 5.2 灰度图像像素遍历
        • 5.2.1 灰度图像像素遍历代码
        • 5.2.2 灰度图像像素遍历结果
    • 6. 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档