Python-OpenCV 處理影象(三):影象畫素點操作

發表於2016-05-30

系列文章目錄

0x01. 畫素

有兩種直接操作圖片畫素點的方法:

第一種辦法就是將一張圖片看成一個多維的list,例如對於一張圖片im,想要操作第四行第四列的畫素點就直接 im[3,3] 就可以獲取到這個點的RGB值。

第二種就是使用 OpenCV 提供的 Get1D、 Get2D 等函式。

推薦使用第一種辦法吧,畢竟簡單。

0x02. 獲取行和列畫素

有一下四個函式:

  • cv.GetCol(im, 0): 返回第一列的畫素

  • cv GetCols(im, 0, 10): 返回前 10 列

  • cv.GetRow(im, 0): 返回第一行

  • cv.GetRows(im, 0, 10): 返回前 10 行

0x03. 批量處理

需要批量處理所有的畫素點的時候,只需要使用for迴圈迭代處理就可以了:

還有一種迭代處理的方式是使用 LineIterator,不過在宣告 LineIterator 的時候需要制定處理畫素點的開始點和結束點。

娛樂一下, 隨機獲取 5000 個畫素點,然後把顏色換成一個隨機的值(salt):

效果圖:

Python-OpenCV 處理影象(三):影象畫素點操作

相關文章