西西文学网 > 玄幻奇幻小说 > 数学心 > 第五百七十六章 AI 智能修复老照片,效果惊艳到我了!

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

oyallwindows()

    修复程序处理二的搭建

    1、图像处理第二步:

    转换成hsv值,根据hsv值判断图片的前景和后景。hsv是一种将rgb色彩空间中的点在倒圆锥体中的表示方法。hsv即色相(hue)、饱和度(saturation)、明度(value),又称hsb(b即brightness)。色相是色彩的基本属性,就是平常说的颜色的名称,如红色、黄色等。饱和度(s)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(v),取0-max(计算机中hsv取值范围和存储的长度有关)。hsv颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,v=0,h和s无定义,代表黑色。圆锥的顶面中心处v=max,s=0,h无定义,代表白色。其中主要用到的函数是cv2库中的color()函数,将rgb图像(在opencv中设计bgr图像)转换为hsv图像用到了参数or_bgr2hsv。

    详细代码如下:

    importcv2

    importos

    importnumpyasnp

    sta=0

    tdir(“cut_test“):

    sta=sta1

    print(“正在处理““cut_test/“file)

    img=ead(“cut_test/“file)

    #img=ead(‘‘)

    rows,cols,channels=pe

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

    #转换hsv

    hsv=color(cropped,or_bgr2hsv)

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

    thresh=ange(hsv,ay([90,10,125]),ay([135,180,255]))

    erode=de(thresh,none,iterations=2)

    dilate=ate(erode,none,iterations=0)

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

    kernel=s((3,3),t

    2、图像修复:

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

    其中腐蚀操作详细如下:

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

    膨胀操作详细如下:

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

    详细代码如下:

    #扩张待修复区域

    hi_mask=ate(dilate,kernel,iterations=1)

    specular=aint(cropped,hi_mask,-5,flags=aint_ns)

    #合并

    htich=ack((specular,img[479:rows,0:cols]))

    ‘

    blue=[]

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

    lower_blue=ay([90,10,125])

    upper_blue=ay([135,180,255])

    mask=ange(hsv,lower_blue,upper_blue)

    erode=de(mask,none,iterations=1)

    dilate=ate(erode,none,iterations=1)

    #腐蚀膨胀

    erode=de(mask,none,iterations=1)

    how(‘erode‘,erode)

    dilate=ate(erode,none,iterations=1)

    how(‘dilate‘,dilate)

    foriinrange(rows):

    forjinrange(cols):

    ifdilate[i,j]==255:

    end([i,j])

    forwinblue:

    x=w[0]

    y=w[1]

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

    ‘

    rite(“dels_test/“str(sta)“jpg“,htich)

    ‘

    how(‘mask‘,img)

    tkey(0)

    troyallwindows()

    ‘