Python OpenCV处理图像之图像像素点操作

  

本文实例为大家分享了Python OpenCV图像像素点操作的具体代码,供大家参考,具体内容如下

  

<强> 0 x01。像素

  

有两种直接操作图片像素点的方法:

  

第一种办法就是将一张图片看成一个多维的列表,例如对于一张图片im,想要操作第四行第四列的像素点就直接im(3 3)就可以获取到这个点的RGB值。

  

第二种就是使用OpenCV提供的Get1D, Get2D等函数。

  

推荐使用第一种办法吧,毕竟简单。

  

<强> 0 x02。获取行和列像素

  

有一下四个函数:

  
      <李>简历。GetCol (im, 0):返回第一列的像素李   <李>简历GetCols (im, 0, 10):返回前10列李   <李>简历。GetRow (im, 0):返回第一行   <李>简历。GetRows (im, 0, 10):返回前十行李   
  

<强> 0 x03。批量处理

  

需要批量处理所有的像素点的时候,只需要使用的循环迭代处理就可以了:

        进口cv2。简历,简历      我=cv.LoadImage (“img/lena.jpg”)      因为我在范围(im.height):   j的范围(im.width):   im (i, j) #这里可以处理每个像素点      

还有一种迭代处理的方式是使用LineIterator,不过在声明LineIterator的时候需要制定处理像素点的开始点和结束点。

        进口cv2。简历,简历      我=cv.LoadImage (“img/lena.jpg”)   李=简历。InitLineIterator (im (0, 0), (im。行,im.cols) #所以循环整个矩阵      (r, g, b)的李:   #这里可以对每个像素点的r g b进行处理      

娱乐一下,随机获取5000个像素点,然后把颜色换成一个随机的值(盐):

        进口cv2。简历,简历      进口随机      #这里也可以使用Get2D/Set2D来加载图片   我=cv.LoadImage (“img/lena.jpg”)      k范围内(5000):#创造5000个噪声像素   我=random.randint (0, im.height-1)   j=random.randint (0, im.width-1)   颜色=(random.randrange (256), random.randrange (256), random.randrange (256))   im (i, j)=颜色      简历。ShowImage (“Noize im)   cv.WaitKey (0)      

效果图:

  

 Python OpenCV处理图像之图像像素点操作

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python OpenCV处理图像之图像像素点操作