Python OpenCV對圖像像素進行操作
遍歷並修改圖像像素值
在使用opencv處理圖像時,有時需要對圖像的每個像素點進行處理,比如取反、修改值等操作,就需要通過h和w遍歷像素。
依然以下圖為例:
具體代碼:
import cv2 as cv import numpy as np def image_pixel(image_path: str): img = cv.imread(image_path, cv.IMREAD_COLOR) cv.imshow('input', img) h, w, c = img.shape # 遍歷像素點,修改圖像b,g,r值 for row in range(h): for col in range(w): b, g, r = img[row, col] # img[row, col] = (255 - b, 255 - g, 255 - r) # img[row, col] = (255 - b, g, r) # img[row, col] = (255 - b, g, 255 - r) img[row, col] = (0, g, r) cv.imshow('result', img) cv.imwrite('images/result.jpg', img) cv.waitKey(0) cv.destroyAllWindows()
結果展示:
圖像的加減乘除運算
圖像的加減運算可以調整圖片的亮度和對比度。圖像的加減運算可以調整圖像的亮度;圖像的乘除運算可以調整圖像的對比度。
具體代碼:
# -*-coding:utf-8-*- """ File Name: image_pixel_operation.py Program IDE: PyCharm Create File By Author: Hong """ import cv2 as cv import numpy as np def math_pixel(image_path: str): img = cv.imread(image_path, cv.IMREAD_COLOR) cv.imshow('input', img) h, w, c = img.shape blank = np.zeros_like(img) blank[:, :] = (2, 2, 2) # 所有像素值設為50 # 改變圖像亮度 mask = cv.add(img, blank) # 圖像加操作。圖像形狀一樣就可以相加,像素值類型不一樣不影響, 人為的增加瞭亮度 mask = cv.subtract(img, blank) # 圖像減操作。人為的降低瞭亮度 # 改變圖像對比度 # result = cv.divide(img, blank) # 圖像除操作 result = cv.multiply(img, blank) # 圖像乘操作 cv.imshow('blank', blank) cv.imshow('mask', mask) cv.imshow('contrast', result) cv.waitKey(0) cv.destroyAllWindows()
效果展示:
到此這篇關於Python OpenCV對圖像像素進行操作的文章就介紹到這瞭,更多相關Python OpenCV圖像像素操作內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python中opencv圖像疊加、圖像融合、按位操作的具體實現
- Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區別
- python計算機視覺OpenCV入門講解
- Python OpenCV圖像模糊處理介紹
- Python OpenCV對圖像進行模糊處理詳解流程