Python 把蓝底照片转化为白底照片

本文系转载,出处:http://blog.csdn.net/haofan_/article/details/76618362。


import cv2
import  numpy as np

img=cv2.imread('yay.jpg')  #原始图片
#缩放
rows,cols,channels = img.shape
img=cv2.resize(img,None,fx=0.5,fy=0.5)
rows,cols,channels = img.shape
cv2.imshow('img',img)

#转换hsv
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
lower_blue=np.array([78,43,46])
upper_blue=np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
#cv2.imshow('Mask', mask)

#腐蚀膨胀
erode=cv2.erode(mask,None,iterations=1)
#cv2.imshow('erode',erode)
dilate=cv2.dilate(erode,None,iterations=1)
#cv2.imshow('dilate',dilate)

#遍历替换
for i in range(rows):
    for j in range(cols):
        if dilate[i,j]==255:
            img[i,j]=(255,255,255)#此处替换颜色,为BGR通道

cv2.imwrite('new.jpg',img) #生成的新图片

cv2.waitKey(0)
cv2.destroyAllWindows()

这里效果的确不是太好,如果还想看更好的转化效果,请看我的下一篇博文:C++ opencv把蓝底照片转化为白底照片。
效果图如下:

Python 把蓝底照片转化为白底照片_第1张图片

Python 把蓝底照片转化为白底照片_第2张图片

你可能感兴趣的:(python,opencv,图像处理,计算机视觉)