• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

(Python)从零开始,简单快速学机器仿人视觉Opencv—第六节:OpenCV图像的一些基本操作

人工智能 Eragonl 1871次浏览 0个评论

提前准备

  使用工具Python3.5 使用包cv2,numpy  

任务1 获取并修改像素值

  读取一副图像,根据像素的行和列的坐标获取它的像素值,对于RGB图像而言,返回RGB的值,对于灰度图则返回灰度值  

import cv2
import numpy
img = cv2.imread('45.jpg')
px=img[100,100]
print(px)
blue = img[100,100,0]
print(blue)
img[101,101]=[255,255,255]
print(img[101,101])

  numpy是经过优化了的进行快速矩阵运算的包,所以不推荐逐个获取像素值并修改能矩阵运算就不要用循环。 例如前5行的后3列,用numpy的array.item()和array.itemset()会更好。但是返回是标量,如果想获得所有RGB的值,需要使用array.item()分割他们。 更好的方法是  

import cv2
import numpy
img = cv2.imread('45.jpg')
print(img.item(10,10,2))
img.itemset((10,10,2),100)
print(img.item(10,10,2))

 

任务2 获取图像属性

  图像属性包括:行,列,通道,图像数据类型,像素数目等  

 成员1:
 img.shape 调用这个成员可以获得图像的形状,返回值是一个包含行数,列数,通道数的元组

  实例代码:  

import cv2
import numpy
img = cv2.imread('45.jpg')
print(img.shape)

  如果图像是灰度图,返回值仅有行数和列数,所以通过检查返回值可以判断是灰度图还是彩色图  

成员2:
img.size 可以返回图像的像素数目

  实例代码:  

import cv2
import numpy
img = cv2.imread('45.jpg')
print(img.size)

  像素的数目=行数 x 列数 x 通道数  

成员3
img.dtype返回图像的数据类型,在debug时很重要,因为OpenCV-Python代码中经常出现数据类型的不一致

  实例代码:  

import cv2
import numpy
img = cv2.imread('45.jpg')
print(img.dtype)

 

总结

(本系列每周不定期更新,谢谢大家支持!)


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明(Python)从零开始,简单快速学机器仿人视觉Opencv—第六节:OpenCV图像的一些基本操作
喜欢 (0)

您必须 登录 才能发表评论!

加载中……