您的位置:首页 > 运维架构

opencv 学习第二天 图片图像的基础操作

2016-11-12 18:22 225 查看
今天学习的目标

• 获取像素值并修改
• 获取图像的属性(信息)

• 图像的 ROI()

• 图像通道的拆分及合并

(1)像素获取及相关操作

#访问像素
px=img2[100,100];print pxred= img2[100,100,0]print red

#修改像素
x=20;
while x<100:
y=20;
while y<100:
#将图片的([120,120],[200,220])复制到([20,20],[100,100])
img2[x,y]=img[x+100,y+100];
y=y+1;
x=x+1;
整体代码:

#coding=utf-8
import cv2
import numpy as np
img=cv2.imread('./1.jpg', cv2.CV_LOAD_IMAGE_COLOR)
img2=img.copy()
#访问像素
px=img2[100,100];
print px
red= img2[100,100,0]
print red
#修改像素
x=20; while x<100: y=20; while y<100: #将图片的([120,120],[200,220])复制到([20,20],[100,100]) img2[x,y]=img[x+100,y+100]; y=y+1; x=x+1;
#保存图片
cv2.imwrite("./2.jpg", img2)
cv2.waitKey (0)
cv2.destroyAllWindows() (2)获取图像的属性(信息)
图像的属性包括:行,列,通道,图像数据类型,像素数目等。img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。

#coding=utf-8
import cv2
import numpy as np
img=cv2.imread('./1.jpg', cv2.CV_LOAD_IMAGE_COLOR)
#大小
print img.shape
#像素个素
print img.size
#img.dtype 是图像的数据类型
print img.dtype
cv2.waitKey (0)
cv2.destroyAllWindows() (3)图像 ROI
#coding=utf-8
import cv2
import numpy as np
img=cv2.imread('./1.jpg', cv2.CV_LOAD_IMAGE_COLOR)
#对一幅图像的特定区域进行操作,ROI 也是使用 Numpy 索引来获得的

cut=img[100:150,100:200]
img[200:250,200:300]=cut
cv2.imwrite("./3.jpg", img)
cv2.waitKey (0)
cv2.destroyAllWindows() (4)图像通道的获取
#coding=utf-8
import cv2
import numpy as np
img=cv2.imread('./1.jpg', cv2.CV_LOAD_IMAGE_COLOR)
#访问b通道
b=img[:,:,0]
print b[20,100]
cv2.waitKey (0)
cv2.destroyAllWindows()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: