第五百七十六章 AI 智能修复老照片,效果惊艳到我了!(2 / 2)

数学心 蔡泽禹 0 字 2021-06-13

#img=cv2.imread

rows,cols,channels=img.shape

cropped=img[0:479,0:cols]

#转换hsv

hsv=cv2.cvtcolor

#图片二值化处理,把[240,240,240][255,255,255]以外的颜色变成0

thresh=cv2.inrange,np.array)

erode=cv2.erode

dilate=cv2.dilate

#创建形状和尺寸的结构元素

kernel=np.ones,np.uint

2、图像修复:

在扩张修复区域的基础上外加调整像素值图片处理。

其中腐蚀操作详细如下:

定义了一个十字形结构元素其实是一个矩阵,我们知道在图片的腐蚀过程,对图片的每个点,使用这个结构扫描每一个点,用结构元素与其覆盖的二值图像做“与”操作,如果都为1,结果图像的该像素为1。否则为0,腐蚀处理的结果是使原来的二值图像减小一圈。使用的函数:cv2.erode;

膨胀操作详细如下:

使用同样的结构,对图片的每个点,使用这个结构扫描每一个点,用结构元素与其覆盖的二值图像做“与”操作,如果出现1,结果图像的该像素为1。否则为0,腐蚀处理的结果是使原来的二值图像扩大一圈。使用的函数:cv2.dilate

详细代码如下:

#扩张待修复区域

hi_mask=cv2.dilate

specular=cv2.inpaint

#合并

htich=np.vstack)

blue=[]

#获取mask,调整lower中h控制颜色

lower_blue=np.array

upper_blue=np.array

mask=cv2.inrange

erode=cv2.erode

dilate=cv2.dilate

#腐蚀膨胀

erode=cv2.erode

cv2.imshow

dilate=cv2.dilate

cv2.imshow

foriinrange:

forjinrange:

ifdilate[i,j]==255:

blue.append

forwinblue:

x=w[0]

y=w[1]

img[x,y]=[255,255,255]

cv2.imwrite+“.jpg“,htich)

cv2.imshow

cv2.waitkey

cv2.destroyallwindows