python 图片相似度匹配,python相似度算法

  python 图片相似度匹配,python相似度算法

  大蟒实现均衡化对比度增强一、直方图二、累积分布函数三、双线性插值四、主函数五、所用库六、公式函数的对比

  另一方面,获得直方图defhist_cal(img ) :img=NP .array)img)height,width=img.shape直方图=NP。iinrange(height)的零(256):forjinrange(width)3360 gray=img)))j累积分布函数不合格直方图(img,直方图,LIMIT=200 ) 3360img=NP.array ) img)统计高度,宽度=img。shapepixcount=heigh * widthdataofsrc=imgdataofst=NP width]))steal=0 for k in range(256):if Histogram[k]Limit:Histogram[k]=Limit steal=Histogram[k]-Limit Lin range(256):Histogram(L)=bonus pro _ den=Histogram/pixcountsum=0 lut=NP .零)256)为in 255格式范围(高) :格式范围(width):dataofdst[m][n]=lut[dataofsrc[m][n]equalize _ img wimg))equalize _ img=equalize _ img。as类型(NP。uint 8)返回LUT,Equalize_img #返回两个值,前者用于克拉赫均衡化的插值width=img _ gray。shape img _ ahe _ liner=NP。zeros([heigh,width]))block _ height=heigh//block _ number block _ width=width//block _ number all _ lut=NP。零([bros]256))存储累积分布函数)的块中的累积分布函数for iinrange(block _ number):block _ number)3360 block=img _ gray j * block _ width:(J1)* block _ width)hist _ block=hist _ cal(block)all _ LUT[I,j]))652 hist _ block(formin range(heigh):forninrange(width)):#四角#角像素点是累积分布函数2安纳斯23360 block _ m=0 block _ n=0 img _ ahe _ liner[m,n]=all_LUT[block_m,block_n][img_gray[m

  th/2和m=heigh-block _ height/2:block _ m=block _ number-1 block _ n=0 img _ ahe _ liner[m,n]=all_LUT[block_m,block_n][img_gray[m,n]] elif m=heigh - block_height/2和n=width-block _ width/2:block _ m=block _ number-1 block _ n=block _ number-1 img _ ahe _ liner[m,n]=all_LUT[block_m,n n]] #除角以外的四条边#四个边采取线性插值elif n=block _ width/2:block _ m _ 1=数学。楼层((m-block _ height/2)/block _ height)block _ n _ 1=0 block _ m _ 1 1 block _ n _ 2=block _ n _ 1 u=NP。float((m-(block _ m _ 1 * block _ height block _ height block _ height/2))/(block _ height))v=1-u img _ ahe _ liner[m,n]=v * all_LUT[block_m_1,block _ 1n]]elif m=block _ height/2:block _ m _ 1=0 block _ n _ 1=math。floor((n-block _ width/2)/block _ m _ 2=block _ m _ 1 block _ n _ 2=block _ n _ 1 1 u=NP。float((n-(block _ n _ 1 * block _ width block _ width/2))/(block _ width))v=1-u img _ ahe _ liner[m,n]=v * all _ LUT[block _ m _ n]]elif m=heigh-block _ height/2:block _ m _ 1=block _ number-1 block _ n _ 1=math。floor((n-block _ width/2)/block _ m _ 2=block _ m _ 1 block _ n _ 2=block _ n _ 1 1 u=NP。float((n-(block _ n _ 1 * block _ width block _ width/2))/(block _ width))v=1-u img _ ahe _ liner[m,n]=v * all _ l n]]elif n=width-block _ width/2:block _ m _ 1=math。楼层((m-block _ height/2)/block _ height)block _ n _ 1=block _ m _ 1 1 block _ n _ 2=block _ n _ 1 u=NP。float((m-(block _ m _ 1 * block _ height block _ height/2))/(block _ height))v=1-u img _ ahe _ liner[m,n]=v * all_LUT n]] #中间区域采取双线性插值else:block _ m _ 1=math。楼层((m-block _ height/2)/block _ height)block _ n _ 1=数学。floor((n-block _ width/2)/block _ m _ 2=block _ m _ 1 1 block _ n _ 2=block _ n _ 1 1u=NP。float((m-(block _ m _ 1 * block _ height block _ height/2))/(block _ height))v=NP。float((n-(块_ n _ 1 *块_宽度块_宽度/宽度

  如果不采用插值,最终的结果将会有很明显边界。

  四、主函数im=cv2。im read( 040 a 07 B4 c 00 a 844 _ size 196 _ w640 _ h480。jpg )img _ LAB=cv2。CVT颜色(im,cv2 .COLOR _ bgr 2 LAB)LAB _ planes=cv2。拆分(img _ LAB)#转化为实验室颜色域,对光分量进行克拉赫,可以得到彩色图,如果转化为灰度图,则是对灰度颜色域的CLAHElab_planes[0]=CLAHE(8,lab _ planes[0])lab=cv2。合并(lab _ planes)bgr=cv2。CVT颜色(lab,cv2 .COLOR _ LAB 2 bgr)cv2。命名窗口( img _ gray ,0)cv2.imshow(img_gray ,img _ LAB)cv2。调整窗口大小( img _ gray ,640,480)cv2。命名窗口( Equalize _ img ,0)cv2。调整窗口大小( Equalize _ img ,640,480)cv2.imshow(Equalize_img ,bgr)cv2.waitKey()五、使用的库将数组作为铭牌导入cv2导入数学六、与官方函数的对比使用CV2中的函数:

  导入cv 2 MRI _ img=cv2。im read( 040 a 07 B4 c 00 a 844 _ size 196 _ w640 _ h480。jpg’)lab=cv2。CVT颜色(MRI _ img,cv2 .COLOR _ bgr 2 lab)lab _ planes=cv2。拆分(实验室)clahe=cv2。create clahe(clip limit=10,tileGridSize=(8,8))lab _ planes[0]=clahe。apply(lab _ planes[0])lab=cv2。合并(lab _ planes)bgr=cv2。CVT颜色(lab,cv2 .COLOR _ lab 2 bgr)cv2。命名窗口( p ,0)cv2.resizeWindow(p ,640,480)cv2.imshow(p ,bgr)cv2.waitKey(0)图一为原图,图2为cv2库得到,图三为自己代码实现:

  图一原图

  图2 cv2库得到

  图三自己代码实现

  官方库运行速度快,自己代码写的为循环太多,耗时较长,采取矩阵运算的方式应该会快很多。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: