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

招商网官网seo刷关键词排名工具

招商网官网,seo刷关键词排名工具,vs怎么做网站的首页,深圳网站营销公司简介pip install pyautogui """ 图像对比分析工具 功能:实现像素级差异、结构相似性(SSIM)、直方图相似度和特征匹配率四种对比方法 作者:智能助手 版本:1.2 日期:2025-02-27""" import os import cv2 …

pip install pyautogui

"""
图像对比分析工具
功能:实现像素级差异、结构相似性(SSIM)、直方图相似度和特征匹配率四种对比方法
作者:智能助手
版本:1.2
日期:2025-02-27"""
import os
import cv2
import pyautogui
import numpy as np
from skimage.metrics import structural_similarity as ssim
from matplotlib import pyplot as plt
from datetime import datetimeclass ImageComparator:def __init__(self, img1_path, img2_path):"""初始化图像比较器参数:img1_path: 第一张图片路径img2_path: 第二张图片路径"""# 读取并预处理图像self.img1 = self._preprocess_image(cv2.imread(img1_path))self.img2 = self._preprocess_image(cv2.imread(img2_path))self._validate_images()  # 验证图像有效性def _validate_images(self):"""验证图像有效性并统一尺寸"""if self.img1 is None or self.img2 is None:raise ValueError("无法加载图像文件")if self.img1.shape != self.img2.shape:self._resize_images()  # 自动调整图像尺寸def _resize_images(self, method=cv2.INTER_AREA):"""统一图像尺寸参数:method: 插值方法,默认使用区域插值(速度快)"""h, w = self.img1.shape[:2]self.img2 = cv2.resize(self.img2, (w, h), interpolation=method)def _preprocess_image(self, img):"""图像预处理流程:1. 高斯模糊降噪2. CLAHE对比度受限直方图均衡化"""# 高斯模糊(核大小5x5,标准差自动计算)img = cv2.GaussianBlur(img, (5, 5), 0)# 转换到LAB颜色空间处理明度通道lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)l, a, b = cv2.split(lab)# 创建CLAHE对象(对比度限制2.0,网格大小8x8)clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8, 8))l_clahe = clahe.apply(l)  # 应用对比度均衡# 合并通道并转回BGR空间lab = cv2.merge((l_clahe, a, b))return cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)def pixel_diff(self, threshold=5, visualize=False):"""像素级差异分析参数:threshold: 差异百分比阈值(默认5%)visualize: 是否可视化差异返回:差异百分比和是否超过阈值"""# 计算绝对差异矩阵diff = cv2.absdiff(self.img1, self.img2)# 计算总差异量(三通道总和)diff_sum = np.sum(diff)# 计算差异百分比(相对于最大可能差异)diff_percent = diff_sum / (self.img1.size * 255) * 100if visualize:self._plot_images(diff, "Pixel Difference")return {"difference_percent": round(diff_percent, 2),"is_different": diff_percent > threshold}def ssim_compare(self, visualize=False):"""结构相似性指数(SSIM)计算参数:visualize: 是否可视化差异图返回:SSIM分数和相似性判断"""# 转换为灰度图像gray1 = cv2.cvtColor(self.img1, cv2.COLOR_BGR2GRAY)gray2 = cv2.cvtColor(self.img2, cv2.COLOR_BGR2GRAY)# 计算SSIM(使用11x11高斯窗口)score, diff = ssim(gray1, gray2, full=True)# 将差异矩阵转换为0-255范围diff = (diff * 255).astype("uint8")if visualize:self._plot_images(diff, f"SSIM {score:.2f}")return {"ssim_score": round(score, 3),"is_similar": score > 0.95  # 经验阈值}def histogram_compare(self, method=cv2.HISTCMP_CORREL):"""直方图相似度计算参数:method: 比较方法(默认相关性)可选方法:HISTCMP_CORREL: 相关性(0-1)HISTCMP_CHISQR: 卡方检验(越小越相似)HISTCMP_BHATTACHARYYA: 巴氏距离(0-1,0最相似)"""# 计算三维直方图(每个通道256级)hist1 = cv2.calcHist([self.img1], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])hist2 = cv2.calcHist([self.img2], [0, 1, 2], None, [256, 256, 256], [0, 256, 0, 256, 0, 256])# 归一化直方图cv2.normalize(hist1, hist1, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)cv2.normalize(hist2, hist2, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX)# 计算直方图相似度similarity = cv2.compareHist(hist1, hist2, method)return round(similarity, 3)def feature_match(self):"""特征匹配率计算使用ORB特征检测器+暴力匹配返回:优质匹配率(匹配距离<50的比例)"""# 初始化ORB检测器orb = cv2.ORB_create()# 检测关键点和计算描述子kp1, des1 = orb.detectAndCompute(self.img1, None)kp2, des2 = orb.detectAndCompute(self.img2, None)# 当没有检测到特征点时返回0if des1 is None or des2 is None:return 0.0# 创建暴力匹配器(汉明距离)bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)matches = bf.match(des1, des2)# 按距离排序matches = sorted(matches, key=lambda x: x.distance)# 筛选优质匹配(距离<50)good_matches = [m for m in matches if m.distance < 50]# 计算优质匹配率match_rate = len(good_matches) / len(matches) if matches else 0return round(match_rate, 3)def _plot_images(self, diff, title):"""可视化对比结果参数:diff: 差异矩阵title: 图表标题"""# 获取屏幕分辨率用于调整显示大小screen_width, screen_height = pyautogui.size()plt.figure(figsize=(screen_width / 100, screen_height / 100))# 子图布局说明:# 221 -> 2行2列的第1个位置# 223 -> 2行2列的第3个位置# 122 -> 1行2列的第2个位置# 原始图像对比plt.subplot(221), plt.imshow(cv2.cvtColor(self.img1, cv2.COLOR_BGR2RGB))plt.title('Image 1'), plt.axis('off')plt.subplot(223), plt.imshow(cv2.cvtColor(self.img2, cv2.COLOR_BGR2RGB))plt.title('Image 2'), plt.axis('off')# 差异图显示plt.subplot(122), plt.imshow(diff, cmap='gray')plt.title(title), plt.axis('off')# 保存并关闭图表(避免内存泄漏)plt.tight_layout()plt.savefig(f"res_{title.split(' ')[0]}.png")plt.close()def generate_report(self, results, filename="report.html"):"""生成HTML格式的测试报告参数:results: 包含各指标的字典filename: 输出文件名"""html_template = f"""<html><head><title>图像对比报告 {datetime.now().strftime("%Y-%m-%d %H:%M")}</title><style>/* 表格样式 */table {{ border-collapse: collapse; width: 80%;margin: 20px auto;box-shadow: 0 1px 3px rgba(0,0,0,0.2);}}th, td {{border: 1px solid #ddd;padding: 12px;text-align: left;}}th {{background-color: #4CAF50;color: white;}}tr:nth-child(even) {{ background-color: #f8f9fa; }}/* 图片容器样式 */.image-container {{text-align: center;margin: 20px;}}img {{ max-width: 45%;margin: 10px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);}}</style></head><body><h2 style="text-align: center;">图像对比分析报告</h2><!-- 结果汇总表格 --><table><tr><th>指标</th><th>结果</th><th>判断标准</th></tr><tr><td>像素差异率</td><td>{results['pixel_diff']}%</td><td>阈值 &lt;5%</td></tr><tr><td>SSIM评分</td><td>{results['ssim']}</td><td>阈值 &gt;0.95</td></tr><tr><td>直方图相似度</td><td>{results['histogram']}</td><td>相关性 &gt;0.9</td></tr><tr><td>特征匹配率</td><td>{results['feature_match']}</td><td>优质率 &gt;30%</td></tr></table><!-- 差异图展示 --><div class="image-container"><h3>差异可视化</h3><img src="res_Pixel.png" alt="像素差异图"><img src="res_SSIM.png" alt="SSIM差异图"></div></body></html>"""# 写入HTML文件with open(filename, 'w', encoding='utf-8') as f:f.write(html_template)print(f"报告已生成: {filename}")if __name__ == "__main__":# 文件路径img1_path = "qian-c.png"img2_path = "qian-w.png"# 检查文件是否存在if not os.path.exists(img1_path):print(f"文件不存在: {img1_path}")if not os.path.exists(img2_path):print(f"文件不存在: {img2_path}")# 使用示例comparator = ImageComparator(img1_path, img2_path)# 执行各对比方法pixel_results = comparator.pixel_diff(visualize=True)ssim_results = comparator.ssim_compare(visualize=True)histogram_results = comparator.histogram_compare()feature_results = comparator.feature_match()# 汇总结果results = {"pixel_diff": pixel_results["difference_percent"],"ssim": ssim_results["ssim_score"],"histogram": histogram_results,"feature_match": feature_results}# 生成报告comparator.generate_report(results)

对比结果

在这里插入图片描述

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

相关文章:

  • 桂林优化大师客服
  • 泰安商城网站开发设计网站模板下载
  • 公司备案可以做购物网站吗外贸网站优化公司
  • dw网站导航怎么做网络营销图片素材
  • php做的网站手机能看到seo关键词排名优化手机
  • 做企业网站关键词点击优化工具
  • 张家口做网站的今天的新闻摘抄
  • wordpress自定义二级菜单的标签企业站seo案例分析
  • 临沂市建设局的网站怎么创建网站赚钱
  • 寿光专业做网站武汉seo网站优化
  • 做网站信科网站建设微软bing搜索引擎
  • 广州市住房和城乡建设局官方网站引流用什么话术更吸引人
  • 纵横天下营销型网站建设免费十八种禁用网站
  • 网站建设用什么系统好抖音seo优化怎么做
  • 凌晨三点看的片免费优化设计四年级上册数学答案
  • 建立网站专栏windows优化大师在哪里
  • 苏州高端网站建设设计win7优化大师好不好
  • 新乡网站建设多少钱做app推广去哪找商家
  • 做的比较好的冷柜网站有哪些seo也成搜索引擎优化
  • 网页响应式西安seo排名外包
  • 婚恋网站需求分析微信朋友圈广告如何投放
  • 百度网站下拉怎么做的苏州网站优化公司
  • 做建材商城网站百度seo快速提升排名
  • 软件实施流程八个阶段优搜云seo
  • 建设开源社区网站什么意思郑州网络营销策划
  • 推荐西安优秀的高端网站建设公司快速seo关键词优化方案
  • 网站主页面设计网络商城应该如何推广
  • 网站设计与制作合同营销推广平台
  • 专业网站建设品牌策划seo包年优化
  • 怎么做带网站连接的表格企业seo服务