![](/img/trans.png)
[英]How to change the color of 4 pixels in an image, multiple times using opencv?
[英]How do you change the color of specified pixels in an image?
我希望能夠根據其RGB值檢測像素的某個區域,並將其更改為其他顏色(不是黑/白)。
我嘗試在代碼中更改這些值,但是我得到的圖像始終顯示黑色像素替換指定位置: pixelMap[i,j]= (255,255,255)
from PIL import Image
im = Image.open('Bird.jpg')
pixelMap = im.load()
img = Image.new(im.mode, im.size)
pixelsNew = img.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
toup = pixelMap[i,j]
if(int(toup[0]>175) and int(toup[1]<100 and int(toup[2])<100) ):
pixelMap[i,j]= (255,255,255)
else:
pixelsNew[i,j] = pixelMap[i,j]
img.show()
您會發現使用Python循環遍歷圖像確實很慢,並且應該養成使用Numpy或優化的OpenCV或skimage代碼的習慣。
因此,從此圖像開始:
from PIL import Image
import numpy as np
# Open image
im = Image.open('bird.jpg')
# Make into Numpy array
imnp = np.array(im)
# Make all reddish pixels white
imnp[(imnp[:,:,0]>170) & (imnp[:,:,1]<100) & (imnp[:,:,2]<100)] = [255,255,255]
# Convert back to PIL and save
Image.fromarray(imnp).save('result.jpg')
它看起來像一個小錯誤:
代替: pixelMap[i,j]= (255,255,255)
用法: pixelsNew[i,j] = (255,255,255)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.