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

专栏内含有ABCD四题思路和代码

问题一

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

思路:

  1. 从图片中提取关键的几何元素,如直线、角度、比例关系等。
  2. 根据这些几何元素,检查是否存在不符合常规几何规则的情况,比如平行线不平行、垂直线不垂直等。
  3. 如果存在不合理的几何特征,那么可能是由AI绘图软件生成的图片。

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

import cv2
import 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
            # 计算直