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

wnmp搭建后怎么做网站在线书店网站怎么做

wnmp搭建后怎么做网站,在线书店网站怎么做,it网站设计,什么网站可以做片头三点之间设置阈值,如果第三点到其余两点的距离大于阈值,那么就在引出一条线来#*************************参数引入************************** import cv2 from matplotlib import pyplot as plt#导入 Matplotlib 库中的 pyplot 模块,并命名为…

三点之间设置阈值,如果第三点到其余两点的距离大于阈值,那么就在引出一条线来

#*************************参数引入**************************
import cv2
from matplotlib import pyplot as plt#导入 Matplotlib 库中的 pyplot 模块,并命名为 plt。#Matplotlib 是一个强大的绘图库,常用于绘制图表和图像显示。#就是窗口# OpenCV	BGR(Blue, Green, Red)# Matplotlib	RGB(Red, Green, Blue)
import numpy as np  #导入 NumPy 库,并命名为 np。#NumPy 提供了多维数组对象及各种派生对象(如掩模数组),并且包含大量用于数组快速操作的函数。
#************************************************************#***************检测图片是否传入***********************************
# 如果图像不在脚本所在目录,请提供完整路径
img1_t = cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/IMG_20231230_171718.jpg")#使用 OpenCV 函数读取图像文件。
img2_t = cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/202310281019103.jpg")                                        #它返回的是一个 NumPy 数组,其中包含了图像的像素数据。如果没有找到图像或路径错误,img 将是 None。
img3_t = cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/maoci1.jpg")                                        #它返回的是一个 NumPy 数组,其中包含了图像的像素数据。如果没有找到图像或路径错误,img 将是 None。
Template_image=cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/moban.jpg")   
lunkuojiance_img=cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/lunkuojiance.jpg")   
lunkuojiance_img2=cv2.imread(r"D:/Professional software package(new)/VS Projects/OPenCv/Picture/lunkuojiance2.jpg")   # 检查图片是否成功加载
if img1_t is None:print("Error: 图像1加载失败,请检查文件路径和文件权限。")
elif img2_t is None:        print("Error: 图像2加载失败,请检查文件路径和文件权限。")
elif img3_t is None:        print("Error: 图像3加载失败,请检查文件路径和文件权限。")
elif Template_image is None:print("Error: 模板图片加载失败,请检查文件路径和文件权限。")
elif lunkuojiance_img is None:print("Error: 轮廓图片加载失败,请检查文件路径和文件权限。") 
elif lunkuojiance_img2 is None:print("Error: 轮廓图片2加载失败,请检查文件路径和文件权限。")          
else:# 将 BGR 图像转换为 RGB 图像以供 matplotlib 正确显示print(" 图像加载成功!")img1_rgb = cv2.cvtColor(img1_t, cv2.COLOR_BGR2RGB)#由于 OpenCV 默认使用 BGR 格式来存储图像数据,而大多数其他图像处理工具(包括 Matplotlib)使用 RGB 格式。                                    #因此,在用 Matplotlib 显示图像之前,我们需要将图像从 BGR 格式转换为 RGB 格式。img3_rgb = cv2.cvtColor(img3_t, cv2.COLOR_BGR2RGB)img2_rgb = cv2.cvtColor(img2_t, cv2.COLOR_BGR2RGB)Template_image_rgb= cv2.cvtColor(Template_image, cv2.COLOR_BGR2RGB)lunkuojiance_img_rgb= cv2.cvtColor(lunkuojiance_img, cv2.COLOR_BGR2RGB)lunkuojiance_img2_rgb= cv2.cvtColor(lunkuojiance_img2, cv2.COLOR_BGR2RGB)img1_rgb = cv2.cvtColor(img1_rgb, cv2.COLOR_BGR2RGB)#由于 OpenCV 默认使用 BGR 格式来存储图像数据,而大多数其他图像处理工具(包括 Matplotlib)使用 RGB 格式。                                    #因此,在用 Matplotlib 显示图像之前,我们需要将图像从 BGR 格式转换为 RGB 格式。img3_rgb = cv2.cvtColor(img3_rgb, cv2.COLOR_BGR2RGB)img2_rgb = cv2.cvtColor(img2_rgb, cv2.COLOR_BGR2RGB)   Template_image_rgb= cv2.cvtColor(Template_image_rgb, cv2.COLOR_BGR2RGB) lunkuojiance_img_rgb= cv2.cvtColor(lunkuojiance_img_rgb, cv2.COLOR_BGR2RGB)lunkuojiance_img2_rgb= cv2.cvtColor(lunkuojiance_img2_rgb, cv2.COLOR_BGR2RGB)#RGB 和 BGR 只是颜色通道的不同排序
#*******************************************************************#*****************图片展示函数**************************************
#参数为   图片名称   图片   时间     缩放百分比
def CV_Show(name,img,time,percent): scale_percent = percent  # 百分比width = int(img.shape[1] * scale_percent / 100)     #shape[1]:图片的宽度height = int(img.shape[0] * scale_percent / 100)    #shape[0]:图片的高度dim = (width, height)#格式为 (width, height)resized_img = cv2.resize(img, dim,interpolation=cv2.INTER_AREA)cv2.imshow(name, resized_img)cv2.waitKey(time*1000)#显示多少秒  cv2.destroyAllWindows()
#**************************************************************#************************轮廓特征和近似**********************************
lunkuojiance_img_gray= cv2.cvtColor(lunkuojiance_img_rgb, cv2.COLOR_BGR2GRAY) 
lunkuojiance_img_gray_ret, lunkuojiance_img_gray_thresh=cv2. threshold(lunkuojiance_img_gray, 127, 255, cv2.THRESH_BINARY) 
lunkuojiance_img_gray_contours, lunkuojiance_img_gray_hierarchy=cv2. findContours(lunkuojiance_img_gray_thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
#print(len(lunkuojiance_img_gray_contours))#lunkuojiance_img_gray_contours:返回的是一个 Python 列表,其中每个元素都是由 (x,y) 坐标组成的数组,这些坐标描述了一个轮廓。列表中的每个元素代表一个独立的轮廓。#lunkuojiance_img_gray_hierarchy 是什么?
# next	同一层级中下一个轮廓的索引
# previous	同一层级中前一个轮廓的索引
# first_child	第一个子轮廓的索引
# parent	父轮廓的索引(如果没有父轮廓,则为 -1)
# [[ 1 -1 -1 -1]   # 第0个轮廓:下一个轮廓是1,没有前一个、没有子轮廓、没有父轮廓
#  [ 2  0 -1 -1]   # 第1个轮廓:下一个是2,前一个是0,没有子轮廓,没有父轮廓
#  [-1  1 -1 -1]   # 第2个轮廓:没有下一个,前一个是1,没有子轮廓,没有父轮廓
#  ...
# ]
#print(lunkuojiance_img_gray_hierarchy)cnt=lunkuojiance_img_gray_contours[0] 
draw_img = lunkuojiance_img_rgb.copy()
res=cv2.drawContours(draw_img, [cnt],-1,(0,0,255), 2)#[cnt]: 表示要绘制的轮廓列表(可以传多个) 
cv2.imshow ('res',res)
cv2.waitKey(0)#显示多少秒,0表示无  
cv2.destroyAllWindows()#**********************画出轮廓缩放函数***********************************#cnt:轮廓列表
epsilon=0.01*cv2.arcLength(cnt, True) #这个值越小,结果越接近原始曲线,但包含的点也越多。
approx=cv2. approxPolyDP (cnt, epsilon, True) #轮廓改变值
draw_img =lunkuojiance_img_rgb.copy()
res = cv2. drawContours(draw_img, [approx],-1, (0,0,255),2) 
cv2.imshow ('res',res)
cv2.waitKey(0)#显示多少秒,0表示无  
cv2.destroyAllWindows()#函数介绍
#cv2.arcLength(curve, closed)
# 作用:计算曲线的周长或闭合轮廓的周长。
# 参数:
# curve: 输入的向量,通常是找到的轮廓点集。也就是轮廓
# closed: 布尔值,指定曲线是否闭合。如果为True,则计算闭合轮廓的周长;如果为False,则计算开放曲线的长度。# cv2.approxPolyDP(curve, epsilon, closed)
# 作用:通过Douglas-Peucker算法对曲线进行逼近,返回一个简化后的曲线,该曲线包含的点数更少。
# 参数:
# curve: 输入的向量,通常是找到的轮廓点集。
# epsilon: 指定逼近精度的最大距离偏差。这个值越小,结果越接近原始曲线,但包含的点也越多。
# closed: 布尔值,指定曲线是否闭合。# cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]])
# 作用:在图像上绘制轮廓或填充轮廓。
# 参数:
# image: 目标图像。
# contours: 要绘制的所有轮廓集合(列表)。
# contourIdx: 指定要绘制的轮廓索引。如果是负数(如-1),则绘制所有轮廓。
# color: 轮廓的颜色(对于RGB图像,使用BGR格式)。
# thickness: 轮廓线的厚度。如果为负值(如FILLED),则填充轮廓内部。#*************************************************#*****************画出矩形框住 轮廓*****************
lunkuojiance_img2_gray= cv2.cvtColor(lunkuojiance_img2_rgb, cv2.COLOR_BGR2GRAY) 
lunkuojiance_img2_gray_ret, lunkuojiance_img2_gray_thresh=cv2. threshold(lunkuojiance_img2_gray, 127, 255, cv2.THRESH_BINARY) 
lunkuojiance_img2_gray_contours, lunkuojiance_img2_gray_hierarchy=cv2.findContours(lunkuojiance_img2_gray_thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE) 
cnt2=lunkuojiance_img2_gray_contours[3]
x, y, w,h=cv2. boundingRect(cnt2) 
img=cv2.rectangle(lunkuojiance_img2_rgb, (x, y),(x+w, y+h),(200,200,255), 2) 
cv2.imshow ('img',img)
cv2.waitKey(0)#显示多少秒,0表示无  
cv2.destroyAllWindows()area=cv2. contourArea (cnt2)
x, y, w,h=cv2. boundingRect(cnt2) 
rect_area =w*h 
extent = float (area)/ rect_area 
print ('轮廓面积与边界矩形比',extent)# cv2.boundingRect(cnt2) 是 OpenCV 中用于计算轮廓的边界框的方法。给定一个轮廓 cnt2,此函数会返回能够包围该轮廓的最小矩形边界框的位置和大小。具体来说:
# x: 边界框左上角的 x 坐标
# y: 边界框左上角的 y 坐标
# w: 边界框的宽度(width)
# h: 边界框的高度(height)#**************************************************#*****************************************************************

http://www.dtcms.com/a/407552.html

相关文章:

  • 详细案例说明AI所用的算法,列出公式,用Python代码说明用法
  • 后端直接返回错误信息的Map 和 抛出异常(异常机制)优劣势对比
  • 如何快速做网站关键词seo网站推广专员招聘
  • 【docker默认防火墙行为调整】
  • 【English】您只知道 look at 表示 “看” 这一种意思吗?
  • 珠海企业网站建设制作北京师大互联网公司
  • 做淘宝客为什么要做网站网站硬件建设
  • Dify使用记录
  • 解析Nano Banana AI:功能特点、使用方法与免费政策
  • 有没有catia做幕墙的网站长沙市做网站
  • php网站开发流程公司网址格式
  • Linux静态库与共享库(动态库)全面详解:从创建到应用
  • 【Linux基础知识系列:第一百三十七篇】理解容器技术与Linux的关系
  • AS32S601ZIT2型MCU:基于RISC-V架构的抗辐照设计与试验评估
  • 卖狗做网站什么关键词最好做网站需要学的语言和软件
  • 1006网站建设单位申请免费网站
  • DHC服务器
  • 【电脑桌面刷新后莫名其妙多一个空缺的问题解决】
  • 性能测试零基础入门:核心概念+实战指南!
  • 免费网站如何被百度收录云南省建设厅网站二建
  • 网站建设 开发 模板网页图片无法另存为
  • 农村做网站赚钱温州百度关键词搜索
  • 前端-JS基础-day2
  • 安徽富通建设工程有限公司网站中国建设银行北京市分行网站
  • 网站流量统计系统 来源概况分析 爬虫蜘蛛统计
  • 中山手机网站建设费用如何做一个宣传片
  • Maya绑定:IK 和 FK对比和使用、IK 和 目标约束的区别
  • 国外网站设计网站织梦网站安装出现dir
  • 【SQL】SQL 命令大全
  • 基于vue的城市智慧地铁管理系统73c2d(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。