[英]How to sum 100 to all pixel values of an image?
我想對圖像的所有像素值求和 100(分隔 255 個限制),我該怎么做? 我在網上找到的例子是這樣的:
gray_2[np.where(gray == 0)] = 255
但就我而言,我想操縱所有這些……怎么做?
我想獲取所有圖像像素值並將 100 與該值相加。
如果您的數據類型在向其添加 100 時不會溢出(即 uint16),那么您只需使用 numpy.add() 即可:
gray_2 = np.add(gray, 100)
大多數圖像都是 uint8 類型,因此您希望將輸出限制在 0 到 255 的范圍內。但是在進行添加時,您希望使用不會溢出的數據類型。 所以需要一些轉換(astype()):
gray_2 = np.add(gray.astype(np.uint16), 100).clip(0, 255).astype(np.uint8)
只需將 100 添加到所有像素?
yourimage += 100
將 100 添加到每個像素的每個通道。 這是最簡單的表達方式。 它在功能上等同於np.add
。
請注意,這可能會溢出。 如果你想阻止這種情況,有兩種選擇。
選項 1: cv2.add
。 這個 OpenCV 函數使用飽和算法。
yourimage = cv2.add(yourimage, 100)
選項 2: np.clip
和一些類型轉換。 假設您的源圖像類型為np.uint8
:
yourimage = (yourimage.astype(np.uint16) + 100).clip(0, 255).astype(np.uint8)
轉換為 uint16,它可以在不換行的情況下保存這些值,然后剪輯到范圍 0..255,然后轉換回 uint8。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.