OpenCV實現(xiàn)圖片亮度增強或減弱
本文實例為大家分享了OpenCV實現(xiàn)圖片亮度增強或減弱的具體代碼,供大家參考,具體內(nèi)容如下
對每個像素點的三通道值進行同步放大,同時保持通道值在0-255之間
將圖像中的像素限制在最小值和最大值之間,超過此區(qū)間的值賦值為最小值或最大值
圖片亮度增強
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('1.png', 1) height, width = img.shape[:2] dst = np.zeros((height, width, 3), np.uint8) for i in range(0, height): ? ? for j in range(0, width): ? ? ? ? (b, g, r) = img[i, j] ? ? ? ? bb = int(b) + 50 ? ? ? ? gg = int(g) + 50 ? ? ? ? rr = int(r) + 50 ? ? ? ? if bb > 255: ? ? ? ? ? ? bb = 255 ? ? ? ? if gg > 255: ? ? ? ? ? ? gg = 255 ? ? ? ? if rr > 255: ? ? ? ? ? ? rr = 255 ? ? ? ? dst[i, j] = (bb, gg, rr) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB) plt.figure(figsize=(14, 6), dpi=100) ?# 設(shè)置繪圖區(qū)域的大小和像素 plt.subplot(121) plt.imshow(img) plt.subplot(122) plt.imshow(dst) plt.show()
運行結(jié)果:
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('1.png', 1) height, width = img.shape[:2] dst = np.zeros((height, width, 3), np.uint8) for i in range(0, height): ? ? for j in range(0, width): ? ? ? ? (b, g, r) = img[i, j] ? ? ? ? bb = int(b * 1.3) + 10 ? ? ? ? gg = int(g * 1.2) + 15 ? ? ? ? if bb > 255: ? ? ? ? ? ? bb = 255 ? ? ? ? if gg > 255: ? ? ? ? ? ? gg = 255 ? ? ? ? dst[i, j] = (bb, gg, r) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB) plt.figure(figsize=(14, 6), dpi=100) ?# 設(shè)置繪圖區(qū)域的大小和像素 plt.subplot(121) plt.imshow(img) plt.subplot(122) plt.imshow(dst) plt.show()
運行結(jié)果:
圖片亮度減弱
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('1.png', 1) height, width = img.shape[:2] dst = np.zeros((height, width, 3), np.uint8) for i in range(0, height): ? ? for j in range(0, width): ? ? ? ? (b, g, r) = img[i, j] ? ? ? ? bb = int(b) - 50 ? ? ? ? gg = int(g) - 50 ? ? ? ? rr = int(r) - 50 ? ? ? ? if bb < 0: ? ? ? ? ? ? bb = 0 ? ? ? ? if gg < 0: ? ? ? ? ? ? gg = 0 ? ? ? ? if rr < 0: ? ? ? ? ? ? rr = 0 ? ? ? ? dst[i, j] = (bb, gg, rr) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) dst = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB) plt.figure(figsize=(14, 6), dpi=100) ?# 設(shè)置繪圖區(qū)域的大小和像素 plt.subplot(121) plt.imshow(img) plt.subplot(122) plt.imshow(dst) plt.show()
運行結(jié)果:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python的ORM框架中SQLAlchemy庫的查詢操作的教程
這篇文章主要介紹了Python的ORM框架中SQLAlchemy庫的查詢操作的教程,SQLAlchemy用來操作數(shù)據(jù)庫十分方便,需要的朋友可以參考下2015-04-04Python基于callable函數(shù)檢測對象是否可被調(diào)用
這篇文章主要介紹了Python基于callable函數(shù)檢測對象是否可被調(diào)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10Python字符串處理實現(xiàn)單詞反轉(zhuǎn)
這篇文章主要為大家詳細介紹了Python字符串處理實現(xiàn)單詞反轉(zhuǎn)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06