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

免费公司宣传视频制作软件关键词seo优化排名

免费公司宣传视频制作软件,关键词seo优化排名,wordpress模板中文,wordpress 手机顶部悬浮OpenCV-Python小应用(九):通过灰度直方图检测图像异常点 前言前提条件相关介绍实验环境通过灰度直方图检测图像异常点代码实现输出结果 参考 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容&#xff…

OpenCV-Python小应用(九):通过灰度直方图检测图像异常点

  • 前言
  • 前提条件
  • 相关介绍
  • 实验环境
  • 通过灰度直方图检测图像异常点
    • 代码实现
    • 输出结果
  • 参考

在这里插入图片描述
在这里插入图片描述

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.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 OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令。
  • 图像的灰度值是指图像中每个像素的亮度值,通常用于黑白图像。灰度值的范围通常是0到255,其中0表示黑色,255表示白色。在计算机视觉中,灰度图像是由纯黑和纯白来过渡得到的,在黑色中加入白色就得到灰色,纯黑和纯白按不同的比例来混合就得到不同的灰度值。
  • 在灰度图像中,每个像素的颜色值都是灰度值,指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0。在灰度图像中,每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。
  • 灰度直方图是一种用来描述数字图像中灰度级分布的图形工具。它是一个灰度级的函数,表示图像中具有某种灰度级的像素的个数,反映了图像中每种灰度出现的频率。
  • 灰度直方图是图像处理中非常重要的一个概念,它是我们对图像本身灰度的一个分析以及之后我们需要做二值化的一个基础的概念
  • 灰度直方图可以用来分析图像的对比度、亮度等特征,也可以用于图像增强、图像分割、图像压缩等领域。
  • 图像灰度直方图相关知识点,可查阅OpenCV-Python快速入门(九):直方图

实验环境

  • Python 3.6.13 (面向对象的高级语言)
  • OpenCV 3.4.10(python第三方库)pip3 install opencv-python==3.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,color='b')# 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 = 'imgs'img_name_list = os.listdir(img_dir)output_folder = 'out_imgs'if 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(img>min(up_cal_res),img<max(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_pixels>4:contours,_ = cv2.findContours(condition.astype(np.uint8),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)valid_rectangles=[]for i,c in enumerate(contours):box=cv2.boundingRect(c)x,y,w,h, =boxcenter_x=x+w//2center_y=y+h//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),(x+w,y+h),(0,0,255),2)pad = 5for i,(x,y,w,h,_,_) in enumerate(valid_rectangles):cv2.rectangle(small_image,(x-pad,y-pad),(x+w+pad,y+h+pad),(0,0,255),1)# 保存图片output_filename = f"{os.path.splitext(img_name)[0]}_res.jpg"output_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训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目
http://www.yidumall.com/news/24050.html

相关文章:

  • 重庆建网站诚选快忻科技悉心百度网站怎么优化排名靠前
  • 做个网站多少钱怎么接广告app推广怎么做
  • 自己的网站怎样做优化上海营销公司
  • 网站建设公司做销售前景好不好企业网络营销策略分析案例
  • 申请个人网站多少钱牛排seo系统
  • 公司介绍网站怎么做百家号权重查询
  • 怎么将网站权重提上去如何推广引流
  • 怎么做淘宝联盟网站制作中关村标准化协会
  • 网络小说网站建设教育机构培训
  • 基于html的网站设计网站制作公司高端
  • wordpress退回旧编辑器杭州专业seo公司
  • wordpress后台二次开发谷歌seo网络公司
  • 网页设计与开发期末作品手机优化大师下载2022
  • 贵州城乡建设部网站首页站长网站查询工具
  • 温州市微网站制作多少钱网络营销软件
  • 网站怎么做优化推广广告公司推广平台
  • 个人网站设计与实现结论网站流量监控
  • 黑糖不苦建设的网站百度灰色词优化排名
  • 济南公司制作网站百度首页网址
  • 西安营销网站搜索平台
  • 阿里巴巴做轮播网站b2b网站推广优化
  • 怎样做医疗保健网站seo优化与sem推广有什么关系
  • 中石化胜利建设工程有限公司网站媒体推广
  • 找人做jsp网站百度平台商家我的订单查询
  • 网站开发公司需要什么资质营销型企业网站的功能
  • asp技术网站开发案例网页开发教程
  • 广州做网站信息广东公共广告20120708
  • 网站开发环境有什么免费的精准引流软件
  • 专门写文章的网站网络宣传的好处
  • 新疆网站建设介绍seo范畴