opencv調整影象亮度對比度 | opencv亮度對比度
影象處理影象變換就是找到一個函式,把原始影象矩陣經過函式處理後,轉換為目標影象矩陣. 可以分為兩種方式,即畫素級別的變換和區域級別的變換Pointoperators(pixeltransforms)Neighborhood(area-based)operators畫素級別的變換就相當於(p_{after}(i,j)=f(p_{before}(i,j))),即變換後的每個畫素值都與變換前的同位置的畫素值有個函式對映關係.對比度和亮度改變線性變換 最常用的是線性變換.即(g(i,j)=alphacdotf(i,j)+eta)f(i,j)是原畫素值,g(i,j)是變換後的畫素值.(alpha)調整對比度,(eta)調整亮度.有時也稱之為gain和bias引...
影象處理影象變換就是找到一個函式,把原始影象矩陣經過函式處理後,轉換為目標影象矩陣. 可以分為兩種方式,即畫素級別的變換和區域級別的變換
Point operators (pixel transforms) Neighborhood (area-based) operators畫素級別的變換就相當於(p_{after}(i,j) = f(p_{before}(i,j))),即變換後的每個畫素值都與變換前的同位置的畫素值有個函式對映關係.
對比度和亮度改變 線性變換最常用的是線性變換.即(g(i,j) = alpha cdot f(i,j) + eta)f(i,j)是原畫素值,g(i,j)是變換後的畫素值.(alpha)調整對比度,(eta)調整亮度.有時也稱之為gain和bias引數.
對比度是什麼?不就是"亮和暗的區別"嗎?也就是畫素值的大小的區別.那我乘以一個alpha係數,當alpha很大的時候就是放大了這種亮度值的差異,也就是提高了對比度,當alpha很小時,也就是縮小了亮度的差異,也就是縮小了對比度.
beta就更好理解了,直接在畫素的亮度值上加上一個數,正數就是提高亮度,負數降低亮度.
看一下下面程式碼的示例:
from __future__ import print_function from builtins import input import cv2 as cv import numpy as np import argparse # Read image given by user parser = argparse.ArgumentParser(description=Code for Changing the contrast and brightness of an image! tutorial.) parser.add_argument(--input, help=Path to input image., default=lena.jpg) args = parser.parse_args() image = cv.imread(cv.samples.findFile(args.input)) if im...