国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-15 22:20:45
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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)

效果圖:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吐鲁番市| 抚州市| 长武县| 罗定市| 杭锦旗| 神农架林区| 海盐县| 杭锦后旗| 绩溪县| 平江县| 册亨县| 肃宁县| 麦盖提县| 泾川县| 桂东县| 龙江县| 广平县| 金沙县| 嘉鱼县| 孙吴县| 正宁县| 肥西县| 永靖县| 建昌县| 柳州市| 瑞昌市| 府谷县| 舒兰市| 翁牛特旗| 江川县| 布尔津县| 罗江县| 墨江| 阜新市| 故城县| 佛坪县| 吉水县| 三都| 托克托县| 平舆县| 加查县|