91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python OpenCV處理圖像之圖像像素點操作

發布時間:2020-09-19 03:52:34 來源:腳本之家 閱讀:333 作者:Leo 欄目:開發技術

本文實例為大家分享了Python OpenCV圖像像素點操作的具體代碼,供大家參考,具體內容如下

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循環迭代處理就可以了:

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
 
for i in range(im.height):
 for j in range(im.width):
  im[i,j] # 這里可以處理每個像素點

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

import cv2.cv as cv
 
im = cv.LoadImage("img/lena.jpg")
li = cv.InitLineIterator(im, (0, 0), (im.rows, im.cols)) #So loop the entire matrix
 
for (r, g, b) in li:
 # 這里可以對每個像素點的 r g b 進行處理

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

import cv2.cv as cv
 
import random
 
# 這里也可以使用 Get2D/Set2D 來加載圖片
im = cv.LoadImage("img/lena.jpg") 
 
for k in range(5000): #Create 5000 noisy pixels
 i = random.randint(0,im.height-1)
 j = random.randint(0,im.width-1)
 color = (random.randrange(256),random.randrange(256),random.randrange(256))
 im[i,j] = color
 
cv.ShowImage("Noize", im)
cv.WaitKey(0)

效果圖:

Python OpenCV處理圖像之圖像像素點操作

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新蔡县| 怀宁县| 沁源县| 江门市| 信阳市| 晴隆县| 玉树县| 沐川县| 南溪县| 丹巴县| 平潭县| 三门县| 宜兰市| 河西区| 江油市| 宿松县| 神木县| 武邑县| 贞丰县| 松桃| 德清县| 渭源县| 铁岭市| 邵阳市| 竹北市| 宜兰县| 新绛县| 同江市| 鹤山市| 东安县| 龙川县| 荆门市| 祁门县| 磐石市| 台南市| 寻甸| 名山县| 石首市| 汉沽区| 昭通市| 绩溪县|