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

鞍山网站开发公司三网合一网站建设程序

鞍山网站开发公司,三网合一网站建设程序,西安工程建设信息网,彩票网站wordpress模板OpenCV-Python小应用#xff08;九#xff09;#xff1a;通过灰度直方图检测图像异常点 前言前提条件相关介绍实验环境通过灰度直方图检测图像异常点代码实现输出结果 参考 前言 由于本人水平有限#xff0c;难免出现错漏#xff0c;敬请批评改正。更多精彩内容#xff… OpenCV-Python小应用九通过灰度直方图检测图像异常点 前言前提条件相关介绍实验环境通过灰度直方图检测图像异常点代码实现输出结果 参考 前言 由于本人水平有限难免出现错漏敬请批评改正。更多精彩内容可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看基于DETR的人脸伪装检测YOLOv7训练自己的数据集口罩检测YOLOv8训练自己的数据集足球检测YOLOv5TensorRT加速YOLOv5模型推理YOLOv5IoU、GIoU、DIoU、CIoU、EIoU玩转Jetson Nano五TensorRT加速YOLOv5目标检测YOLOv5添加SE、CBAM、CoordAtt、ECA注意力机制YOLOv5yolov5s.yaml配置文件解读、增加小目标检测层Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集YOLOv5使用7.0版本训练自己的实例分割模型车辆、行人、路标、车道线等实例分割使用Kaggle GPU资源免费体验Stable Diffusion开源项目 前提条件 熟悉Python 相关介绍 Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加越多被用于独立的、大型项目的开发。OpenCV是一个基于Apache2.0许可开源发行的跨平台计算机视觉和机器学习软件库可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C类构成同时提供了Python、Ruby、MATLAB等语言的接口实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C语言编写它具有C、Python、Java和MATLAB接口并支持Windows、Linux、Android和Mac OSOpenCV主要倾向于实时视觉应用并在可用时利用MMX和SSE指令。图像的灰度值是指图像中每个像素的亮度值通常用于黑白图像。灰度值的范围通常是0到255其中0表示黑色255表示白色。在计算机视觉中灰度图像是由纯黑和纯白来过渡得到的在黑色中加入白色就得到灰色纯黑和纯白按不同的比例来混合就得到不同的灰度值。在灰度图像中每个像素的颜色值都是灰度值指黑白图像中点的颜色深度范围一般从0到255白色为255黑色为0。在灰度图像中每个像素只有一个采样颜色的图像这类图像通常显示为从最暗黑色到最亮的白色的灰度尽管理论上这个采样可以任何颜色的不同深浅甚至可以是不同亮度上的不同颜色。灰度直方图是一种用来描述数字图像中灰度级分布的图形工具。它是一个灰度级的函数表示图像中具有某种灰度级的像素的个数反映了图像中每种灰度出现的频率。灰度直方图是图像处理中非常重要的一个概念它是我们对图像本身灰度的一个分析以及之后我们需要做二值化的一个基础的概念灰度直方图可以用来分析图像的对比度、亮度等特征也可以用于图像增强、图像分割、图像压缩等领域。图像灰度直方图相关知识点可查阅OpenCV-Python快速入门九直方图 实验环境 Python 3.6.13 面向对象的高级语言OpenCV 3.4.10python第三方库pip3 install opencv-python3.4.10.37 通过灰度直方图检测图像异常点 基本思路通过计算图像灰度得到灰度直方图这里认为灰度直方图中灰度值像素个数较少的灰度值大概率为异常点。 目录结构 代码实现 import os import cv2 import copy import numpy as np import matplotlib.pyplot as pltdef cal_low_high_hist(img):hist cv2.calcHist([img],[0],None,[256],[0,255])flattened_hist hist.flatten() # [[255],[125],...] - [255,125,...]# print(sum(flattened_hist)*0.125) # 下分位# print(sum(flattened_hist)*(1-0.125)) # 上分位# plt.plot(hist,colorb)# plt.show()# 下分位nums 0for i in range(len(flattened_hist)):low_sum sum(flattened_hist)*0.125nums flattened_hist[i]if nums low_sum:# print(i)break# 上分位nums 0for j in range(len(flattened_hist)):low_sum sum(flattened_hist)*(1-0.125)nums flattened_hist[j]if nums low_sum:# print(j)breakreturn i,jif __name____main__:# 上分位计算值up_cal_val [15,255]# 下分位计算值low_cal_val [-255,-15]img_dir imgsimg_name_list os.listdir(img_dir)output_folder out_imgsif not os.path.exists(output_folder):os.mkdir(output_folder)for img_name in img_name_list:img_path os.path.join(img_dir,img_name)img cv2.imread(img_path,0)i,j cal_low_high_hist(img) # 下上# print(i,j)up_cal_res list(map(lambda x: x j, up_cal_val))low_cal_res list(map(lambda x: x i, low_cal_val))# print(up_cal_res,low_cal_res) up_cal_res [x if x 255 else 255 for x in up_cal_res] # 亮点(异常点)low_cal_res [x if x 0 else 0 for x in low_cal_res] # 暗点(异常点)# print(up_cal_res,low_cal_res) #找到满足条件的像素点condition np.logical_or(imgmin(up_cal_res),imgmax(low_cal_res))out_of_range_pixels np.count_nonzero(condition)# print(out_of_range_pixels)# total_out_of_range_pixels out_of_range_pixelssmall_image copy.deepcopy(img)if out_of_range_pixels4:contours,_ cv2.findContours(condition.astype(np.uint8),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)valid_rectangles[]for i,c in enumerate(contours):boxcv2.boundingRect(c)x,y,w,h, boxcenter_xxw//2center_yyh//2# valid_rectangles.append((x,y,w,h,center_x,center_y))valid_rectangles.append([x,y,w,h,center_x,center_y])# cv2.drawContours(small_image,contours,i,(0,255.0),2)# cv2.rectangle(small_image,(x,y),(xw,yh),(0,0,255),2)pad 5for i,(x,y,w,h,_,_) in enumerate(valid_rectangles):cv2.rectangle(small_image,(x-pad,y-pad),(xwpad,yhpad),(0,0,255),1)# 保存图片output_filename f{os.path.splitext(img_name)[0]}_res.jpgoutput_path os.path.join(output_folder,output_filename)cv2.imwrite(output_path,small_image)# 显示图片show_img cv2.resize(small_image,(small_image.shape[1],small_image.shape[0]))cv2.imshow({}.format(output_filename),show_img)cv2.waitKey()cv2.destroyAllWindows() 输出结果 参考 [1] https://opencv.org/ [2] 李立宗. OpenCV轻松入门面向Python. 北京 电子工业出版社2019 由于本人水平有限难免出现错漏敬请批评改正。更多精彩内容可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看基于DETR的人脸伪装检测YOLOv7训练自己的数据集口罩检测YOLOv8训练自己的数据集足球检测YOLOv5TensorRT加速YOLOv5模型推理YOLOv5IoU、GIoU、DIoU、CIoU、EIoU玩转Jetson Nano五TensorRT加速YOLOv5目标检测YOLOv5添加SE、CBAM、CoordAtt、ECA注意力机制YOLOv5yolov5s.yaml配置文件解读、增加小目标检测层Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集YOLOv5使用7.0版本训练自己的实例分割模型车辆、行人、路标、车道线等实例分割使用Kaggle GPU资源免费体验Stable Diffusion开源项目
http://www.dnsts.com.cn/news/51879.html

相关文章:

  • 网站站长程序员自己做项目网站
  • 深圳网站推广公司百度学术免费查重入口
  • 那些网站可以做推广微信公众号网址
  • 什么网站做首页西部数码创建php网站
  • 怎么做招聘有哪些网站工业设计app
  • 洛阳网站公司哪家好wordpress 链接失效
  • 注册网站乱填邮箱制作网站公司推荐
  • 济南便宜网站设计建设网站的公司
  • 响应式网站如何实现北京建设大学官方网站
  • 动易学校网站模板珠海专业网站建设公司哪家好
  • 淄博哪里有网站建设平台wordpress小程序收录
  • 舆情信息网站电子商务网站设计代码
  • 网站如何添加数据安徽软件定制开发
  • 好的龙岗网站建设免费域名注册可解析
  • 沾益县住房和城乡建设局网站公司网站开发维护
  • 搜索引擎的优化方法seo优化的价格
  • asp.net 4.0网站建设基础教程cent安装wordpress
  • 呼市网站开发网站建设销售找客源
  • 怎么样自学做网站行唐县网站建设
  • 网站建设简介是什么旅游做网站
  • 17一起做网店网站潮汕wordpress设置中文
  • 邯郸做移动网站价格常用的网站建设技术有什么
  • 足彩网站怎样做推广深圳西乡网站建设
  • 申请备案网站首页做led灯网站有哪些呢
  • 做网站 图片显示不出来专业seo培训
  • 东莞网站建设最牛番禺区网络推广渠道
  • 网站不备案不能用吗10个网站用户体验优化的研究结果
  • 安徽省住房建设部官方网站做网站哪个语言强
  • 创造网站的最简单 软件是哪个查找域名
  • 网站开发技术代码钓鱼网站下载