如何用
opencv
在
python
平台上实现灰度图像的二值化,对数变换,
,伽马变换以及补色变
换。代码如下
import cv2
import copy
import math
import numpy as np
from matplotlib import pyplot as plt
img=cv2.imread("a.jpg")
cv2.namedWindow("
原图
",cv2.WINDOW_NORMAL)
cv2.imshow("
原图
",img)
rows=img.shape[0]
cals=img.shape[1]
gray=np.zeros(img.shape,np.uint8)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
a=copy.deepcopy(gray)
b=copy.deepcopy(gray)
c=copy.deepcopy(img)
d=copy.deepcopy(gray)
cv2.namedWindow("
二值化
",cv2.WINDOW_NORMAL)
cv2.namedWindow("
伽马变换
",cv2.WINDOW_NORMAL)
cv2.namedWindow("
补色变换
",cv2.WINDOW_NORMAL)
cv2.namedWindow("
对数变换
",cv2.WINDOW_NORMAL)
for i in range(rows):
for j in range(cals):
if (a[i,j]<115):
a[i,j]=0
else:
a[i,j]=255
cv2.imshow("
二值化
",a)
for i in range(rows):
for j in range(cals):
b[i,j]=6*pow(b[i,j],0.5)
cv2.imshow("
伽马变换
",b)
for i in range(rows):
for j in range(cals):
c[i,j]=255-c[i,j]
cv2.imshow("
补色变换
",c)
for i in range(rows):
for j in range(cals):
d[i,j]=18*math.log(1+d[i,j],2)
cv2.imshow("
对数变换
",d)
cv2.waitKey (0)
cv2.destroyAllWindows()