Opencv笔记(七)——访问与操作像素

一、获取矩阵的元素

1、获取三维矩阵img[i,j]处的元素

        (b,g,r) = image[i,j],image大小为:MxNxK。

2、获取三维矩阵的子矩阵的全部元素

        newimage = image[i:j,p:q],image大小为:MxNxK。

二、获取图片的像素

import numpy as np
import cv2
img = cv2.imread('/home/wl/le.jpeg',1)
print img.shape
print img[500,300]
print img[100:105,300:306]
cv2.imshow('opencv',img)
cv2.imwrite('/home/wl/1.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

原图如下:

结果为:

(729, 640, 3)#shape
[ 48 147 215]#对应点的像素
[[[ 72 172 231]对应区域的全部像素
  [ 72 172 231]
  [ 72 172 231]
  [ 72 172 231]
  [ 75 178 235]
  [ 70 170 228]]
 [[ 72 172 231]
  [ 72 172 231]
  [ 72 172 231]
  [ 72 172 231]
  [ 80 183 240]
  [ 76 179 236]]]....

三、修改图片的像素

1、修改一点的像素值
import numpy as np
import cv2
img = cv2.imread('/home/wl/le.jpeg',1)
print img[500,300]
img[500,300] = (0,0,255)
print img[500,300]
cv2.imshow('opencv',img)
cv2.imwrite('/home/wl/1.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果为:

[ 48 147 215]#img[500,300]处的像素值
[  0   0 255]#img[500,300]处修改后的像素值

2、修改一个区域的像素值

import numpy as np
import cv2
img = cv2.imread('/home/wl/le.jpeg',1)
img[100:200,200:300] = (255,0,0)
partimg = img[100:200,200:300]
cv2.imshow('opencv',img)
cv2.imwrite('/home/wl/1.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindows() 

posted @ 2018-07-11 20:28  龙~白  阅读(149)  评论(0编辑  收藏  举报