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

重庆网站建站价格广西住房建设厅网站首页

重庆网站建站价格,广西住房建设厅网站首页,施工企业负责人是指企业的,公司网站要更新最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。 链接: 开源 python 应用 开发(一&#xf…

 最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。

 链接:

开源 python 应用 开发(一)python、pip、pyAutogui、python opencv安装-CSDN博客

开源 python 应用 开发(二)基于pyautogui、open cv 视觉识别的工具自动化-CSDN博客

开源 python 应用 开发(三)python语法介绍-CSDN博客

开源 python 应用 开发(四)python文件和系统综合应用-CSDN博客

开源 python 应用 开发(五)python opencv之目标检测-CSDN博客

开源 python 应用 开发(六)网络爬虫-CSDN博客

开源 python 应用 开发(七)数据可视化-CSDN博客

 推荐链接:

开源 Arkts 鸿蒙应用 开发(一)工程文件分析-CSDN博客

开源 Arkts 鸿蒙应用 开发(二)封装库.har制作和应用-CSDN博客

开源 Arkts 鸿蒙应用 开发(三)Arkts的介绍-CSDN博客

开源 Arkts 鸿蒙应用 开发(四)布局和常用控件-CSDN博客

开源 Arkts 鸿蒙应用 开发(五)控件组成和复杂控件-CSDN博客

 推荐链接:

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客

本章节内容如下:实现了一个图像差异比较工具,能够找出两张图片之间的视觉差异并用红色矩形框标记出来。

1.安装所需库

2.核心代码分析

3.所有源码

4.最终效果

一、安装所需库

 安装numpy,matplotlib库

使用vscode的终端或cmd进行安装

pip install numpy matplotlib -i https://mirrors.aliyun.com/pypi/simple/

二、核心源码分析

2.1  比较图片差异代码

 # 转换为灰度图gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)# 计算绝对差异diff = cv2.absdiff(gray1, gray2)# 二值化差异图_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)# 膨胀处理,使差异区域更明显kernel = np.ones((5, 5), np.uint8)dilated = cv2.dilate(threshold, kernel, iterations=1)# 找到差异区域的轮廓contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

2.2  在原图上绘制红色矩形框标记差异

# 在原图上绘制红色矩形框标记差异result = img2.copy()for contour in contours:# 过滤掉太小的区域if cv2.contourArea(contour) > 100:  # 面积阈值可根据需要调整x, y, w, h = cv2.boundingRect(contour)cv2.rectangle(result, (x, y), (x+w, y+h), (0, 0, 255), 2)  # 红色矩形框

2.3  对比结果保存到图片,将4张图片合一

# 保存结果cv2.imwrite(output_path, result)# 显示结果(可选)plt.figure(figsize=(15, 10))plt.subplot(221), plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))plt.title('Image 1'), plt.axis('off')plt.subplot(222), plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB))plt.title('Image 2'), plt.axis('off')plt.subplot(223), plt.imshow(diff, cmap='gray')plt.title('Difference'), plt.axis('off')plt.subplot(224), plt.imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))plt.title('Result (Differences in Red)'), plt.axis('off')plt.tight_layout()plt.show()

三、所有源码

import cv2
import numpy as np
from matplotlib import pyplot as pltdef compare_images(image1_path, image2_path, output_path='diff_result.jpg'):"""比较两张图片并标出差异区域参数:image1_path: 第一张图片路径image2_path: 第二张图片路径output_path: 输出结果图片路径"""# 读取图片img1 = cv2.imread(image1_path)img2 = cv2.imread(image2_path)# 检查图片是否成功加载if img1 is None or img2 is None:print("错误: 无法加载图片,请检查路径")return# 确保两张图片尺寸相同if img1.shape != img2.shape:print("错误: 图片尺寸不一致")return# 转换为灰度图gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)# 计算绝对差异diff = cv2.absdiff(gray1, gray2)# 二值化差异图_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)# 膨胀处理,使差异区域更明显kernel = np.ones((5, 5), np.uint8)dilated = cv2.dilate(threshold, kernel, iterations=1)# 找到差异区域的轮廓contours, _ = cv2.findContours(dilated, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 在原图上绘制红色矩形框标记差异result = img2.copy()for contour in contours:# 过滤掉太小的区域if cv2.contourArea(contour) > 100:  # 面积阈值可根据需要调整x, y, w, h = cv2.boundingRect(contour)cv2.rectangle(result, (x, y), (x+w, y+h), (0, 0, 255), 2)  # 红色矩形框# 保存结果cv2.imwrite(output_path, result)# 显示结果(可选)plt.figure(figsize=(15, 10))plt.subplot(221), plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB))plt.title('Image 1'), plt.axis('off')plt.subplot(222), plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB))plt.title('Image 2'), plt.axis('off')plt.subplot(223), plt.imshow(diff, cmap='gray')plt.title('Difference'), plt.axis('off')plt.subplot(224), plt.imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))plt.title('Result (Differences in Red)'), plt.axis('off')plt.tight_layout()plt.show()print(f"对比完成,结果已保存到: {output_path}")# 使用示例
if __name__ == "__main__":# 替换为你的图片路径image1 = "image1.jpg"image2 = "image2.jpg"compare_images(image1, image2)

四、最终效果

http://www.dtcms.com/wzjs/595437.html

相关文章:

  • 晋江企业网站制作WordPress前端分离
  • 厦门市建设安全管理协会网站创世通网站建设
  • 做个网站多少钱合适深圳装修公司排行榜
  • 做瓷砖在什么网站上找素材好网站开发命名规范
  • 网站推广公司推荐网站建设mrd文档模板
  • 网站建设 后期维护什么是企业邮箱怎么申请
  • 有没有做gif的专门网站东莞网站关键词
  • 骑行网站模板做网站能赚钱吗表情包
  • 黄埔区做网站网站的栏目结构简图怎么做
  • 宣传片制作公司有哪些类型电脑网络优化软件
  • 网站开发用哪个程序网站没备案
  • 网站搭建完手机访问网络推广是以企业产品或服务
  • 网站设计主流尺寸python好还是wordpress
  • 做flash网站的软件建站之星模板的使用
  • 南京市规划建设展览馆网站福州百度代理
  • 网站建设需要哪些岗位网站建设需要哪些人才
  • 旅游网站建设需求说明书深圳福田区有哪些大公司
  • 网站数据库在空间吗wordpress不显示
  • 内容网站最新好用的cms军事新闻视频在线观看
  • 怎样批量做地级市网站广州网站建设 易点
  • 建设企业网站方法中国新闻社是什么单位
  • wordpress安装ssl后网站404购物网站开发 书籍
  • 网站开发哪些无经验培训 网页设计学员
  • 制作婚纱摄影网站管理图甘肃肃第八建设集团网站
  • 网站返回404是什么意思怎么登录智慧团建
  • 做二手交易网站如何盈利智慧团建官网登录口入口
  • 免费动画制作网站网站建设 人和商圈
  • 岳麓 网站设计wordpress ip排行榜
  • 企业网站设计过程中自学网官方网站入口
  • 谷歌网站开发客户百度地图怎么搜街景