2 1 畫素的讀取和修改

2021-10-07 04:23:31 字數 3245 閱讀 4385

一、通過下標的方式對影象畫素進行讀取與修改

二、利用numpy庫的方式對影象畫素的讀取與修改

一、通過下標的方式對影象畫素進行讀取與修改

(1)灰度影象畫素的讀取與修改

print(image[100,100])         #訪問影象image的第100行第100列的畫素。【例1】

image[100,100]=255          #修改影象image的第100行第100列的畫素。【例1】

(2)彩色影象畫素的讀取與修改

print(image[100,100])       #讀取第100行100列畫素點的值。[ 78  68 178]。結果有三個值,因為是bgr三通道的影象。【例2】

print(image[100,100,0])    #78.讀取第100行100列畫素點的,b通道的值。【例2】

image[100,100] = [255,255,255]       #修改第100行100列畫素點的值。【例2】

image[100,100,2] = 0                        #修改第100行100列畫素點的,r通道的值。【例2】

image[50:100,50:100] =[255,0,0]      #修改乙個區域為綠色。【例2】

例1:'''

灰度影象畫素讀取和修改

'''import cv2

image = cv2.imread("image\\lena256.bmp", cv2.imread_unchanged)

p = image[100, 100]        #讀取畫素的值

print(p)                             #73

image[100,100] = 255     #修改畫素的值

print(p)                             #73。p還是73.

p = image[100,100]

print(p)                             #255

例2:'''

彩色影象畫素讀取和修改

'''import cv2

image = cv2.imread("image\\lenacolor.png", cv2.imread_unchanged)

#1:讀取乙個畫素點的值

print(image[100,100])     #讀取第100行100列畫素點的值。[ 78  68 178]。結果有三個值,因為是bgr三通道的影象。

#2:讀取乙個畫素點某個通道的值

b = image[100,100,0]      #78.讀取第100行100列畫素點的,b通道的值。

print(b)

g = image[100,100,1]      #68.讀取第100行100列畫素點的,g通道的值。

print(g)

r = image[100,100,2]      #178.讀取第100行100列畫素點的,r通道的值。

print(r)

#3:修改乙個畫素點的值

image[100,100] = [255,255,255]  #修改第100行100列畫素點的值。

print(image[100,100,2])         #255.讀取第100行100列畫素點的,r通道的值。

#4.修改乙個畫素點某個通道的值

image[100,100,2] = 0            #修改第100行100列畫素點的,r通道的值。

print(image[100,100])           #[255 255   0]

#5.修改很多個畫素點的值

image[50:100,50:100] =[255,0,0]  #修改乙個區域為綠色

cv2.imshow("result",image)

cv2.waitkey()

cv2.destroyallwindows()

結果:

二、利用numpy庫的方式對影象畫素的讀取與修改

numpy.array提供了item()和itemset()函式來訪問和修改畫素值。比直接使用索引要快得多。

(1)灰度影象畫素的讀取與修改

print(image.item(100,100))         #訪問第100行100列的畫素值。【例1】

image.itemset((100,100),255)     #把第100行100列畫素點設成255。【例1】

(2)彩色影象畫素的讀取與修改

print(image.item(100,100,0)     #輸出image第100行100列的第0個通道的值。【例2】。注意必須要指定通道值,不能寫image(100,100)

image.itemset((100,100,0),255)  #把第100行100列的畫素的0通道的值改為255。【例2】

例1:'''

灰度影象畫素讀取和修改(使用numpy庫)

'''import cv2

import numpy as np

image = cv2.imread("image\\lena256.bmp",cv2.imread_unchanged)

print(image.item(100,100))        #73.讀取第100行100列的畫素值

image.itemset((100,100),255)      #把第100行100列畫素點設成255。

print(image.item(100,100))        #255.

例2:'''

彩色影象畫素讀取和修改(使用numpy庫)

'''import cv2

import numpy as np

image = cv2.imread("image\\lenacolor.png",cv2.imread_unchanged)

#print(image.item(100,100))    #這樣寫是錯誤的。

print(image.item(100,100,0))   #78.輸出image第100行100列的第0個通道的值

image.itemset((100,100,0),255)

print(image.item(100,100,0))   #255.

02 畫素讀取與修改

讀取 不改變之前樣式 檢視 格式 print 原影象格式為 img.shape 檢視影象格式 檢視某個畫素值 print 原象素值為 img 100,100 因為是rgb,所以有3個通道 img 100 150,100 150 0,0,0 因為有3個通道,所以列表元素有3個 如果只是單純的修改乙個點...

OpenCV 畫素的讀取與操作

畫素讀取和操作 1.利用cv mat的at函式,直接訪問具體位址 void get setimagepixel char imagepath,int x,int y else imshow cc image 2.利用mat的prt void get setimagepixel2 char image...

winfrom中對xml的讀取和修改

winfromconfig.xml檔案 資料庫引數記錄檔案 127.0.0.1 pubs sasa 讀取xml server ds.tables 0 rows 0 server tostring trim 第一行 節點為server的 文字 asename ds.tables 0 rows 0 da...