![](/img/trans.png)
[英]How to change particular type of pixel value in a grayscale image in python?
[英]How to change specific pixel value in grayscale image?
我想使用OpenCV更改灰度圖像的像素值。
假設我有一個灰度圖像,我希望一次將其所有像素轉換為0值。 這樣得到的圖像完全是黑色的。 我嘗試了這個,但圖像沒有變化:
image = cv2.imread('test_image.png',0)
for i in range(image.shape[0]):
for j in range(image.shape[1]):
image[i, j] = 0
結果:
在大多數情況下,您希望避免使用雙for
循環來修改像素值,因為它非常慢。 更好的方法是使用Numpy進行像素修改,因為OpenCV使用Numpy數組來顯示圖像。 要獲得所需的結果,可以使用np.zeros
創建一個與原始圖像具有相同形狀的完全黑色圖像。
import cv2
import numpy as np
image = cv2.imread("test_image.png", 0)
black = np.zeros(image.shape, np.uint8)
cv2.imshow('image', image)
cv2.imshow('black', black)
cv2.waitKey(0)
例如,帶有測試圖像。 原件(左),結果(右)
我建議你總是嘗試操作圖像的副本,這樣圖像就不會以錯誤的方式受到影響。 提出您的問題,您可以執行以下操作:
import cv2
image = cv2.imread('test_image.png',0)
#Creating a copy of the image to confirm right operation is performed on the image.
image_copy = image.copy()
image_copy[:,:] = [0] #Setting all values to 0.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.