当前位置: 首页 > news >正文

平台网站开发方案搭建 网站 模版

平台网站开发方案,搭建 网站 模版,上海关键词优化排名软件,wordpress主题位置最近在做图像标注#xff0c;会出现以下的图片#xff0c;需要去除其中的边框。 1.思路 人工标注画框的范围P#xff0c;并使用标注工具在画框上画一个点A。获取点A的坐标和颜色。在范围P内#xff0c;将与点A颜色相似的每一个点x的颜色#xff0c;替换为点x上下#…最近在做图像标注会出现以下的图片需要去除其中的边框。 1.思路 人工标注画框的范围P并使用标注工具在画框上画一个点A。获取点A的坐标和颜色。在范围P内将与点A颜色相似的每一个点x的颜色替换为点x上下或左右范围内若干个点的平均颜色。但是对于边缘部分可能存在如下图所示的问题 对边框的边缘部分Q进行额外处理。边框的颜色可能与点A的颜色有较大差异因此需要利用其他方法进行处理。我使用异常值检测算法因为Q中未在步骤2去除的一些残留点与原始图片会存在较大差异结合频度信息可以筛选出这些点并得到以下的效果 2.代码实现 导包和必要的参数、模型 from PIL import Image import numpy as np from sklearn.ensemble import IsolationForest from collections import Counter# 判断rgb相似度用可以小一些 threhold15 threhold_border15# 采样半径可以设的小一些可以根据边框的粗细来设定 redius20 redius_border20# 对边框进行处理需要调整的参数 step_add37 step_max2000 step0 all_outliers[] top_outlier_num10# 创建Isolation Forest模型 model IsolationForest(contamination0.05) # 设置异常点的比例辅助函数 #判断颜色是否相似 def my_similar(a,b):if sum([abs(x-y) for (x,y) in zip(list(a),list(b))])/3threhold:return Truereturn False# 判断颜色是否相似 def my_similar_border(a,b_s):for b in b_s:if sum([abs(x-y) for (x,y) in zip(list(a),list(b)[0])])/3threhold_border:return Truereturn False# 获取异常值用于处理边框的边缘Q def get_outlier(tmp,model):normal_point[]unnormal_point[]# 将数据传递给模型进行训练model.fit(tmp)# 获取每个数据点的预测标签-1 表示异常点1 表示正常点labels model.predict(tmp)# 打印每个数据点的标签for i, label in enumerate(labels):if label -1:unnormal_point.append(tmp[i])if label1:normal_point.append(tmp[i])return normal_point,unnormal_point# 在水平或处置方向上获取邻居节点以便进行颜色替换 def get_right_neighborhood(target_color,neighborhood_x,neighborhood_y):diff_x0diff_y0for neighborhood in neighborhood_x:diff_xabs(sum([x-y for x,y in zip(list(neighborhood),list(target_color))])/3)for neighborhood in neighborhood_y:diff_yabs(sum([x-y for x,y in zip(list(neighborhood),list(target_color))])/3)if diff_xdiff_y:return neighborhood_x,1return neighborhood_y,2主函数和必要的准备数据 ######################################################################################## ############################开始对区域P和点A进行人工指定################################ ################################对应“思路”第1部分##################################### ######################################################################################### 利用手动或利用labelimg等标注工具 # 确定“思路”第1部分中的区域“P” #人工框选画框的大致位置需要包裹住画框 x_11427 y_1723 x_22061 y_21363# 利用手动或利用labelimg等标注工具 # 确定“思路”第1部分中的点“A” x 1495 # 目标像素点的 x 坐标 y 1294 # 目标像素点的 y 坐标# 主要函数 def replace_color_around_point(image_path, x, y, radiusredius):# 采样步数step0# 打开图像image Image.open(image_path)pixels image.load()# 获取图像的宽度和高度width, height image.size####################################################################################################################开始对边框的内部节点进行处理################################################################对应“思路”第2部分############################################################################################################################## 获取目标像素点的颜色target_color pixels[x, y]# 循环遍历图像中的每个像素点for i in range(x_1,x_2):for j in range(y_1,y_2):# 如果像素颜色与目标颜色相同则替换为周围区域颜色的平均值if my_similar(pixels[i, j],target_color):# 计算周围水平和垂直区域的颜色平均值neighborhood_x []neighborhood_y[]for m in range(i - redius, i radius 1):if 0 m width:neighborhood_x.append(pixels[m, j])for n in range(j - redius, j radius 1):if 0 n height:neighborhood_y.append(pixels[i, n])neighborhood,directionget_right_neighborhood(target_color,neighborhood_x,neighborhood_y)neighborhood[n for n in neighborhood if not my_similar(n,target_color)]neighborhood np.array(neighborhood)average_colortuple(np.mean(neighborhood, axis0, dtypeint))average_color_part_1 tuple(np.mean(neighborhood[0:int(len(neighborhood)/2)], axis0, dtypeint))average_color_part_2 tuple(np.mean(neighborhood[int(len(neighborhood)/2)1:], axis0, dtypeint))# 替换像素颜色pixels[i, j] average_color# 如果是水平方向if direction1:for m in range(i - int(redius_border/3), i):if 0 m width:pixels[m,j]average_color_part_1for m in range(i, i int(redius_border/3) 1):if 0 m width:pixels[m,j]average_color_part_2# 如果是垂直方向if direction2: for n in range(j - int(redius_border/3), j):if 0 n height:pixels[i,n]average_color_part_1for n in range(j ,j int(redius_border/3) 1):if 0 n height:pixels[i,n]average_color_part_2step1if step%step_add0 and stepstep_max:normal_point,unnormal_pointget_outlier(neighborhood,model)unnormal_point[tuple(x) for x in unnormal_point]all_outliers.extend(unnormal_point)####################################################################################################################开始对边框的边缘节点进行处理################################################################对应“思路”第2部分############################################################################################################################## 使用Counter来统计三元组的出现次数all_outlier_counts Counter(all_outliers)# 获取出现次数最多的十个三元组用来去边框top_outliers all_outlier_counts.most_common(top_outlier_num)# 循环遍历图像中的每个像素点for i in range(x_1,x_2):for j in range(y_1,y_2):# 如果该点和异常点中的颜色相似就进行替换if my_similar_border(pixels[i, j] ,top_outliers):# 计算周围水平和垂直区域的颜色平均值neighborhood_x []neighborhood_y[]for m in range(i - int(radius/3), i int(radius/3) 1):if 0 m width:neighborhood_x.append(pixels[m, j])for n in range(j - int(radius/3), j int(radius/3) 1):if 0 n height:neighborhood_y.append(pixels[i, n])neighborhood,directionget_right_neighborhood(target_color,neighborhood_x,neighborhood_y)neighborhood[n for n in neighborhood if not n in top_outliers]neighborhood np.array(neighborhood)average_colortuple(np.mean(neighborhood, axis0, dtypeint))# 替换像素颜色pixels[i, j] average_color# 保存修改后的图像image.save(r../data/bbb.jpg)调用 image_path r../data/aaa.jpg # 替换为您的输入图像路径 replace_color_around_point(image_path, x, y)3.存在的问题 在进行颜色替换时仅仅使用了平均值代码中的average_color相关内容也许可以使用其他线性插值算法。需要对参数进行精心调节否则可能导致框内的图像会出现以下的“毛刺现象”且无法把“框”完全去除 将threhold参数调小后毛刺消失。也可以对其他参数进行调节。
http://www.w-s-a.com/news/411792/

相关文章:

  • 淡蓝色网站qq推广中心
  • 设计网站价格餐饮吸引客流的活动方案
  • 手机网站建设电话百度搜索量
  • 条件查询 php网站源码中国白云手机网站建设
  • 网上注册公司流程及材料班级优化大师免费下载电脑版
  • 应用网站如何做营销型网站的重要特点
  • 怎么样百度搜到自己的网站加强社区网站建设
  • 建设网站所需技术wordpress延时加载js
  • 网站建设沈阳搜云seo
  • 怎么申请免费的网站空间微信公众平台注册收费吗
  • 东营网站搭建最基本的网站设计
  • 网站建设技术的发展最近的国际新闻大事
  • 德州有名的网站建设公司网站如何做引流
  • 建设一个收入支出持平的网站网络推广计划书格式
  • 什么是网站黑链全球新冠疫苗接种率
  • 网站开发 chrome gimp网站不备案做seo没用
  • 织梦校园招生网站源码沪佳哪个好
  • 建设企业网站可信度软件产品如何做网站推广
  • 网站建设企业号助手贵阳景观设计公司
  • 网站开发第三方建设银行个人网站显示不了
  • 无锡兼职做网站郑州网站建设搜索优化
  • iis禁止通过ip访问网站品牌策划案例ppt
  • 电子商务网站建设实习seo黑帽优化
  • 如何做好网站建设销售闸北集团网站建设
  • 重庆装饰公司北京官网seo推广
  • 深圳网站设计灵点网络品牌网站充值接口
  • 建设书局 网站国内国际时事图片
  • 成都 网站建设培训学校屏蔽wordpress自带编辑器
  • 公司网站制作工作室中天建设集团有限公司第五建设公司
  • 网站的网页设计毕业设计苏州宣传册设计广告公司