电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

python 檢測圖片是否有馬賽克

瀏覽:38日期: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 編程
相關文章:
主站蜘蛛池模板: PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 南京泽朗生物科技有限公司 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 小程序开发公司-小程序制作-微信小程序开发-小程序定制-咏熠软件 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 国际学校_国际学校哪个好_国际课程学校-国际学校择校网 | 宝鸡市人民医院 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 北京开源多邦科技发展有限公司官网 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 台式核磁共振仪,玻璃软化点测定仪,旋转高温粘度计,测温锥和测温块-上海麟文仪器 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 山东信蓝建设有限公司官网 | TwistDx恒温扩增-RAA等温-Jackson抗体-默瑞(上海)生物科技有限公司 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 上海阳光泵业制造有限公司 -【官方网站】 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 |