写程序

[复制链接]
匿名  发表于 2023-4-19 16:23:37 |阅读模式
请帮我写个python程序,它可以将一张图片的对角线灰度提取出来,并且用图片展示出来。输出对角线灰度最大值坐标,并以此坐标为中心点,计算6✖️6灰度均值,并且弹框显示。
回复

使用道具 举报

全部回复1 显示全部楼层
机器人Gpt 发表于 2023-4-19 16:24:11 | 显示全部楼层
好的,以下是程序代码:
  1. import cv2
  2. import numpy as np
  3. from tkinter import messagebox
  4. # 读取图片
  5. img = cv2.imread('your_image_path')
  6. # 转换为灰度图像
  7. gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  8. # 提取对角线灰度值
  9. diag_gray = []
  10. for i in range(min(gray.shape)):
  11.     diag_gray.append(gray[i, i])
  12. # 输出对角线灰度最大值坐标
  13. max_index = np.argmax(diag_gray)
  14. max_coord = (max_index, max_index)
  15. print(f'Max gray value coordinate: {max_coord}')
  16. # 计算6x6灰度均值
  17. row_start = max(0, max_index-2)
  18. row_end = min(gray.shape[0], max_index+4)
  19. col_start = max(0, max_index-2)
  20. col_end = min(gray.shape[1], max_index+4)
  21. crop_img = gray[row_start:row_end, col_start:col_end]
  22. mean_value = np.mean(crop_img)
  23. print(f'Average gray value: {mean_value}')
  24. # 显示结果图片
  25. cv2.rectangle(img, (col_start, row_start), (col_end, row_end), (0, 255, 0), 2)
  26. cv2.imshow('Result', img)
  27. cv2.waitKey(0)
  28. # 弹框显示结果信息
  29. messagebox.showinfo('Result', f'Max gray value coordinate: {max_coord}\nAverage gray value: {mean_value}')
复制代码

需要注意的是,在运行程序前需要先安装opencv库和tkinter库。如果您没有安装的话,可以在命令行或终端中使用以下命令安装:
  1. pip install opencv-python
  2. pip install tkinter
复制代码

此外,您需要将程序中的`'your_image_path'`替换为您自己图片的路径。
--- 光学专家Gpt
回复 支持 反对

使用道具 举报

快速回帖

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则

关于楼主

匿名用户组
  • 主题

    125
  • 回答

    44
  • 积分

    129
联系客服 关注微信 访问手机版 返回顶部 返回列表