国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python 檢測圖片是否有馬賽克

瀏覽:16日期:2022-07-03 15:06:21

首先是Canny邊緣檢測,將圖片的邊緣檢測出來,參考博客https://www.cnblogs.com/techyan1990/p/7291771.html

原理講的很清晰,給原博主一個贊

邊緣檢測之后按照正方形檢索來判定是否是馬賽克內容

原理知曉了之后就很好做了

話說MATLAB轉化為python的過程還是很有趣的

from PIL import Imageimport numpy as npimport mathimport warnings#算法來源,博客https://www.cnblogs.com/techyan1990/p/7291771.html和https://blog.csdn.net/zhancf/article/details/49736823highhold=200#高閾值lowhold=40#低閾值warnings.filterwarnings('ignore')demo=Image.open('noise_check//23.jpg')im=np.array(demo.convert(’L’))#灰度化矩陣print(im.shape)print(im.dtype)height=im.shape[0]#尺寸width=im.shape[1]gm=[[0 for i in range(width)]for j in range(height)]#梯度強度gx=[[0 for i in range(width)]for j in range(height)]#梯度xgy=[[0 for i in range(width)]for j in range(height)]#梯度ytheta=0#梯度方向角度360度dirr=[[0 for i in range(width)]for j in range(height)]#0,1,2,3方位判定值highorlow=[[0 for i in range(width)]for j in range(height)]#強邊緣、弱邊緣、忽略判定值2,1,0rm=np.array([[0 for i in range(width)]for j in range(height)])#輸出矩陣#高斯濾波平滑,3x3for i in range(1,height-1,1): for j in range(1,width-1,1): rm[i][j]=im[i-1][j-1]*0.0924+im[i-1][j]*0.1192+im[i-1][j+1]*0.0924+im[i][j-1]*0.1192+im[i][j]*0.1538+im[i][j+1]*0.1192+im[i+1][j-1]*0.0924+im[i+1][j]*0.1192+im[i+1][j+1]*0.0924for i in range(1,height-1,1):#梯度強度和方向 for j in range(1,width-1,1): gx[i][j]=-rm[i-1][j-1]+rm[i-1][j+1]-2*rm[i][j-1]+2*rm[i][j+1]-rm[i+1][j-1]+rm[i+1][j+1] gy[i][j]=rm[i-1][j-1]+2*rm[i-1][j]+rm[i-1][j+1]-rm[i+1][j-1]-2*rm[i+1][j]-rm[i+1][j+1] gm[i][j]=pow(gx[i][j]*gx[i][j]+gy[i][j]*gy[i][j],0.5) theta=math.atan(gy[i][j]/gx[i][j])*180/3.1415926 if theta>=0 and theta<45: dirr[i][j]=2 elif theta>=45 and theta<90: dirr[i][j]=3 elif theta>=90 and theta<135: dirr[i][j]=0 else: dirr[i][j]=1for i in range(1,height-1,1):#非極大值抑制,雙閾值監測 for j in range(1,width-1,1): NW=gm[i-1][j-1] N=gm[i-1][j] NE=gm[i-1][j+1] W=gm[i][j-1] E=gm[i][j+1] SW=gm[i+1][j-1] S=gm[i+1][j] SE=gm[i+1][j+1] if dirr[i][j]==0: d=abs(gy[i][j]/gx[i][j]) gp1=(1-d)*E+d*NE gp2=(1-d)*W+d*SW elif dirr[i][j]==1: d=abs(gx[i][j]/gy[i][j]) gp1=(1-d)*N+d*NE gp2=(1-d)*S+d*SW elif dirr[i][j]==2: d=abs(gx[i][j]/gy[i][j]) gp1=(1-d)*N+d*NW gp2=(1-d)*S+d*SE elif dirr[i][j]==3: d=abs(gy[i][j]/gx[i][j]) gp1=(1-d)*W+d*NW gp2=(1-d)*E+d*SE if gm[i][j]>=gp1 and gm[i][j]>=gp2: if gm[i][j]>=highhold: highorlow[i][j]=2 rm[i][j]=1 elif gm[i][j]>=lowhold: highorlow[i][j]=1 else: highorlow[i][j]=0 rm[i][j]=0 else: highorlow[i][j]=0 rm[i][j]=0for i in range(1,height-1,1):#抑制孤立低閾值點 for j in range(1,width-1,1): if highorlow[i][j]==1 and (highorlow[i-1][j-1]==2 or highorlow[i-1][j]==2 or highorlow[i-1][j+1]==2 or highorlow[i][j-1]==2 or highorlow[i][j+1]==2 or highorlow[i+1][j-1]==2 or highorlow[i+1][j]==2 or highorlow[i+1][j+1]==2): #highorlow[i][j]=2 rm[i][j]=1#img=Image.fromarray(rm)#矩陣化為圖片#img.show()#正方形法判定是否有馬賽克value=35lowvalue=16imgnumber=[0 for i in range(value)]for i in range(1,height-1,1):#性價比高的8點判定法 for j in range(1,width-1,1): for k in range(lowvalue,value): count=0 if i+k-1>=height or j+k-1>=width:continue if rm[i][j]!=0:count+=1#4個頂點 if rm[i+k-1][j]!=0:count+=1 if rm[i][j+k-1]!=0:count+=1 if rm[i+k-1][j+k-1]!=0:count+=1 e=(k-1)//2 if rm[i+e][j]!=0:count+=1 if rm[i][j+e]!=0:count+=1 if rm[i+e][j+k-1]!=0:count+=1 if rm[i+k-1][j+e]!=0:count+=1 if count>=6: imgnumber[k]+=1for i in range(lowvalue,value): print('length:{} number:{}'.format(i,imgnumber[i]))

結果圖可以上一下了

可以看出在一定程度上能夠檢測出馬賽克內容

原圖

python 檢測圖片是否有馬賽克

邊緣圖案

python 檢測圖片是否有馬賽克

正方形數量

python 檢測圖片是否有馬賽克

以上就是python 檢測圖片是否有馬賽克的詳細內容,更多關于python 檢測圖片馬賽克的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 成年男人午夜片免费观看 | 性刺激久久久久久久久 | 手机看片免费基地你懂的 | 一级特色大黄美女播放网站 | 欧美特黄三级成人 | 免费看成人 | 国产欧美日韩综合精品一区二区 | 亚洲第一视频在线观看 | 国产日韩欧美视频在线 | 69成人免费视频 | 国产在线一二三区 | 成人久久影院 | 色悠久久久久综合网伊人男男 | 久久成人亚洲 | 亚洲免费在线观看 | 美女黄色毛片免费看 | 另类视频区第一页 | 国产一区二区三区视频 | 色播亚洲 | 亚洲日本高清影院毛片 | 免费a级毛片视频 | 男人天堂日韩 | 欧美日韩精品一区二区 | 久久精品高清 | 久久精品国产精品亚洲综合 | 男女上下爽无遮挡午夜免费视频 | 国产精品露脸脏话对白 | 日韩免费一级毛片欧美一级日韩片 | 国产韩国精品一区二区三区 | 美国三级在线观看 | 国产成人免费观看在线视频 | 亚洲国产精品不卡毛片a在线 | 欧美一区二区三区免费播放 | 99久久精品免费视频 | 国产高清毛片 | 国产精品久久久久精 | a一级特黄日本大片 s色 | 欧美视频精品在线 | 国内精品久久久久不卡 | 国产成人综合精品一区 | 97超级碰碰碰免费公开在线观看 |