2024 年“认证杯”数学建模 D题 AI 绘画带来的挑战

个人笔记(bug,思路,总结) 2024-06-13 10:01:02 阅读 100

专栏内含有ABCD四题思路和代码,更多详细思路和代码:2024 年“认证杯”数学建模 D题 AI 绘画带来的挑战-CSDN博客

问题一

当从几何角度来审视 AI 绘画时,我们可以关注一些常见的几何原理和规则,例如平行线、垂直线、对称性等。下面是一个思路和示例代码,用于检测可能存在的几何不合理性:

思路:

从图片中提取关键的几何元素,如直线、角度、比例关系等。

根据这些几何元素,检查是否存在不符合常规几何规则的情况,比如平行线不平行、垂直线不垂直等。

如果存在不合理的几何特征,那么可能是由AI绘图软件生成的图片。

示例代码(使用Python和OpenCV):

import cv2import numpy as np def detect_geometric_inconsistencies(image_path): # 读取图片 image = cv2.imread(image_path) # 将图片转换为灰度图 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 使用Canny边缘检测算法检测边缘 edges = cv2.Canny(gray, 50, 150, apertureSize=3) # 使用霍夫线变换检测直线 lines = cv2.HoughLines(edges, 1, np.pi/180, 100) if lines is not None: for rho, theta in lines[:, 0]: a = np.cos(theta) b = np.sin(theta) x0 = a * rho y0 = b * rho # 计算直线的两个点 x1 = int(x0 + 1000 * (-b)) y1 = int(y0 + 1000 * (a)) x2 = int(x0 - 1000 * (-b)) y2 = int(y0 - 1000 * (a)) # 绘制直线 cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2) # 显示图片 cv2.imshow('Detected Lines', image) cv2.waitKey(0) cv2.destroyAllWindows() # 示例图片路径image_path = 'example_image.jpg'# 检测几何不合理性detect_geometric_inconsistencies(image_path)



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。