ChatGPT写程序如何?

前言

ChatGPT最近挺火的,据说还能写程序,感到有些惊讶。于是在使用ChatGPT有一周左右后,分享一下用它写程序的效果如何。

1、对于矩阵,把减法操作转换加法?

感觉不错的,能清晰介绍原理,然后写示例程序,还给出了示例的运行结果。

2、写一个程序,矩阵除法转换为矩阵除法

上面是一个简答的例子,要求程序详细一些

当要求程序详细一些时,它会写得很详细些,这个不错的;

但是在解释原理时,公式显示乱码了,这点有待完善。

3、写一个程序,pytorch模型转onnx

对于特定领域的知识(ONNX模型转换),它也是知道的,能根据需求,写出示例程序。

4、写一个程序,遍历彩色图片

5、写一个程序,遍历三维数组

但是呢,上面的程序会报错:

ValueError: index 10016 is out of bounds for array with size 10000

6、写个程序,实现彩色图片灰度化,灰度值是每个通道的平均值

7、使用opencv检测图片的轮廓,拟合直线

import cv2
import numpy as np# 读取图像并转换为灰度图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 对图像进行二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)# 找到图像中的轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)# 对每个轮廓拟合多条直线
for cnt in contours:# 近似轮廓epsilon = 0.01 * cv2.arcLength(cnt, True)approx = cv2.approxPolyDP(cnt, epsilon, True)# 计算轮廓的凸包hull = cv2.convexHull(approx, returnPoints=False)# 如果轮廓点的数量不足 5 个,则不做拟合if len(approx) < 5:continue# 寻找轮廓的顶点defects = cv2.convexityDefects(approx, hull)vertices = []for i in range(defects.shape[0]):s, e, f, d = defects[i, 0]start = tuple(approx[s][0])end = tuple(approx[e][0])far = tuple(approx[f][0])vertices.append(far)# 对轮廓进行拟合lines = cv2.fitLine(np.array(vertices), cv2.DIST_L2, 0, 0.01, 0.01)# 绘制拟合直线x0, y0 = int(lines[2] - lines[0] * 100), int(lines[3] - lines[1] * 100)x1, y1 = int(lines[2] + lines[0] * 100), int(lines[3] + lines[1] * 100)cv2.line(img, (x0, y0), (x1, y1), (0, 255, 0), 2)cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

import cv2
import numpy as np# 读取图片
img = cv2.imread('example.png')# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化处理
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)# 查找轮廓
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 对轮廓点集合按照横坐标排序
contour_points = contours[0]
contour_points = contour_points[np.argsort(contour_points[:, :, 0])]# 分离轮廓点集合
mid_x = (contour_points[0][0][0] + contour_points[-1][0][0]) // 2
left_points = contour_points[0:mid_x, :, :]
right_points = contour_points[mid_x:, :, :]# 拟合左侧直线
left_vx, left_vy, left_x, left_y = cv2.fitLine(left_points, cv2.DIST_L2, 0, 0.01, 0.01)# 拟合右侧直线
right_vx, right_vy, right_x, right_y = cv2.fitLine(right_points, cv2.DIST_L2, 0, 0.01, 0.01)# 计算直线的截距和斜率
left_k = left_vy / left_vx
left_b = left_y[0][0] - left_k * left_x[0][0]
right_k = right_vy / right_vx
right_b = right_y[0][0] - right_k * right_x[0][0]# 画出拟合的直线
height, width, _ = img.shape
left_x0 = 0
left_y0 = int(left_k * left_x0 + left_b)
left_x1 = width
left_y1 = int(left_k * left_x1 + left_b)
right_x0 = 0
right_y0 = int(right_k * right_x0 + right_b)
right_x1 = width
right_y1 = int(right_k * right_x1 + right_b)
cv2.line(img, (left_x0, left_y0), (left_x1, left_y1
import cv2
import numpy as np# 读入图像
img = cv2.imread("example.jpg")# 灰度化和边缘检测
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150, apertureSize=3)# 获取轮廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 对每个轮廓进行拟合
for contour in contours:# 拟合直线[vx, vy, x, y] = cv2.fitLine(contour, cv2.DIST_L2, 0, 0.01, 0.01)slope = vy / vxy_intercept = y - slope * xx1 = 0y1 = int(x1 * slope + y_intercept)x2 = img.shape[1] - 1y2 = int(x2 * slope + y_intercept)cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)[vx, vy, x, y] = cv2.fitLine(contour, cv2.DIST_L2, 0, 0.01, 0.01)slope = vy / vxy_intercept = y - slope * xx1 = 0y1 = int(x1 * slope + y_intercept)x2 = img.shape[1] - 1y2 = int(x2 * slope + y_intercept)cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)# 显示结果
cv2.imshow("result", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

import cv2
import numpy as np# 读入图片,转为灰度图
img = cv2.imread("image.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Canny 边缘检测
edges = cv2.Canny(gray, 50, 150)# 寻找轮廓
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 画出轮廓
contour_img = np.zeros_like(img)
cv2.drawContours(contour_img, contours, -1, (0, 255, 0), 3)# 对每个轮廓拟合两条直线
line_img = np.zeros_like(img)
for cnt in contours:# 拟合第一条直线[vx, vy, x, y] = cv2.fitLine(cnt, cv2.DIST_L2, 0, 0.01, 0.01)lefty = int((-x * vy / vx) + y)righty = int(((img.shape[1] - x) * vy / vx) + y)cv2.line(line_img, (img.shape[1]-1, righty), (0, lefty), (255, 0, 0), 2)# 拟合第二条直线[vx, vy, x, y] = cv2.fitLine(cnt, cv2.DIST_L2, 0, 0.01, 0.01)lefty = int((-x * vy / vx) + y)righty = int(((img.shape[1] - x) * vy / vx) + y)cv2.line(line_img, (img.shape[1]-1, righty), (0, lefty), (0, 0, 255), 2)# 显示结果
cv2.imshow("Contour", contour_img)
cv2.imshow("Lines", line_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

同样的问题,实现的方式有多种;在编写程序需求时,明确一下思路,它写出来的代码会更符合我们所想的。

import cv2
import numpy as np# 读取图片并进行灰度化处理
img = cv2.imread('test.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 对灰度图像进行边缘检测,如使用 Canny 算法
edges = cv2.Canny(gray, 50, 150)# 找到所有轮廓,并选择一个想要拟合的轮廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours[0]# 对轮廓进行逼近,得到轮廓的拟合线段
epsilon = 0.1 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)# 计算轮廓的重心坐标
M = cv2.moments(cnt)
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])# 将轮廓点集合分为左右两部分
left_cnt = []
right_cnt = []
for i in range(len(cnt)):if cnt[i][0][0] < cx:left_cnt.append(cnt[i])else:right_cnt.append(cnt[i])left_cnt = np.array(left_cnt)
right_cnt = np.array(right_cnt)# 对左右两部分的点分别进行拟合直线
[vx_l, vy_l, x_l, y_l] = cv2.fitLine(left_cnt, cv2.DIST_L2, 0, 0.01, 0.01)
[vx_r, vy_r, x_r, y_r] = cv2.fitLine(right_cnt, cv2.DIST_L2, 0, 0.01, 0.01)# 得到拟合直线的参数,可以使用直线的一般式或截距式表示
k_l = vy_l / vx_l
b_l = y_l - k_l * x_l
k_r = vy_r / vx_r
b_r =

这个代码没写完,又被中断了;感觉写稍微长一些的代码,就容易出现中断的情况。

总体感受

  1. 对于简单的运算,感觉不错的,能清晰介绍原理,然后写示例程序,还给出了示例的运行结果。

  1. 在示例程序中,要求程序详细一些时,它会写得很详细些,这个不错的。

  1. 对于一些特定领域的知识,它也是知道的,能根据描述需求,写出示例程序。

  1. 有些复杂一些的运算,它写出的程序会报错;这个需要我们检测和修正。

  1. 写稍微长一些的代码,就容易出现中断的情况,代码还没写完呢。

  1. 总体感觉挺挺强的,适合我们去了解一个新的知识(原理和思路),然后参考它的示例程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1306.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT写新闻-ChatGPT写文章

ChatGPT写新闻 ChatGPT可以用于生成新闻稿件&#xff0c;但需要注意的是&#xff0c;由ChatGPT生成的新闻稿件可能存在语义、逻辑、事实准确性等方面的问题&#xff0c;因此需要进行人工审核和编辑&#xff0c;确保其准确性。 下面是一个示例过程&#xff0c;大致了解如何使用…

ChatGPT初学者写作教程

ChatGPT初学者写作教程 ChatGPT Quickstart for the ChatGPT Curious 和 Beginners – 了解这个 OpenAI 聊天机器人革命&#xff0c;即 ChatGPT&#xff01; 课程英文名&#xff1a;ChatGPT for Beginners - Get Up & Running with ChatGPT Now 此视频教程共8.0小时&#x…

想用ChatGPT写作?或许没你想的那么神奇...

ChatGPT让AI进化到了新高度&#xff0c;它不但懂你还能够回答问题。这与传统中的网络检索、语义识别不太一样。核心是基于自然语言处理&#xff08;NLP&#xff09;的聊天机器人技术。 说简单点&#xff0c;就是可以直接打字和机器人聊天&#xff0c;并且得到你想要的答案。 网…

ChatGPT如何写作-chatGpt自动写文章

ChatGPT如何写作 使用 ChatGPT 进行写作一般可以遵循以下步骤&#xff1a; 定义写作主题和目的。确定写作主题和目的&#xff0c;包括要解决的问题、目标读者群体以及需要涵盖的主要内容。 收集文献和资料。收集与主题相关的文献和资料&#xff0c;可以从互联网、书籍、报刊杂…

OpenAI Translator | 基于ChatGPT API全局翻译润色解析及ORC上传图像翻译插件

简介 OpenAI Translator&#xff0c;一款基于 ChatGPT API 的划词翻译的浏览器插件和跨平台桌面端应用&#xff0c;使用 ChatGPT API 进行划词翻译和文本润色&#xff0c;借助了 ChatGPT 强大的翻译能力&#xff0c;帮助用户更流畅地阅读外语和编辑外语&#xff0c;允许跨 55 …

chatGPT润色中英论文软件-文章修改润色器

chatGPT可以润色英文论文吗&#xff1f; ChatGPT可以润色英文论文&#xff0c;它具备自动纠错、自动完善语法和严格全面的语法、句法和内容结构检查等功能&#xff0c;可以对英文论文进行高质量的润色和优化。此外&#xff0c;ChatGPT还支持学术翻译润色、查重及语言改写等服务…

不会代码没有Key如何使用中科院学术专用版 ChatGPT的方法(内附免费使用ChatGPT plus网址和论文润色的指令模板)

文章目录 1.英语学术润色2.中文学术润色3.查找语法错误中译英学术中英互译找图片解释代码 最近应该都听说了一个非常火的ChatGPT学术版&#xff08;chatgpt academic&#xff09;&#xff0c;其功能非常强大。近两天小硕想跑通用一下&#xff0c;但是奈何没有openai的key&#…

一点就通——ChatGPT翻译润色的最新简明使用方案

prompt使用推荐 1.翻译prompt 翻译主要有两种&#xff0c;第一种是我们的老朋友厦门大学潘王雨昂&#xff08;个人主页&#xff1a;pwya.github.io&#xff09;所编写使用的prompt&#xff0c;第二种是我自己改造的。 1.我希望你能担任英语翻译、拼写校对和修辞改进的角色。…

如何利用ChatGPT进行论文润色-ChatGPT润色文章怎么样

ChatGPT润色文章怎么样&#xff1f; ChatGPT可以润色文章&#xff0c;使用其润色功能可以为用户提供更加整洁、清晰、文采动人的文本。但需要注意以下几点&#xff1a; 需要保持文本的一致性和完整性。当使用ChatGPT进行润色时&#xff0c;需要注意保持文本的一致性和完整性。…

企业软件怎样利用ChatGPT?

文/明道云创始人任向晖 作为商业和科技话题的博主&#xff0c;不评论一下ChatGPT似乎是不应该的。毫无疑问&#xff0c;ChatGPT的出现已经远远超过了科技商业要闻的标准&#xff0c;它的革命性已经被飙速增长的用户所直接证明&#xff0c;以至于留给我们的问题只有两个&#xf…

“ChatGPT 正在取代员工”,最新 ChatGPT 调查报告发布!

编译 | 苏宓 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 随着 2022 年 11 月 ChatGPT 的出现&#xff0c;AI 将会对人类的工作带来哪些影响&#xff0c;成为不少人焦虑的关键所在。毕竟 ChatGPT 不仅能回答任何问题&#xff0c;还能自动生成内容、编写代码、写…

chatGPT开发公司

OpenAI是chatGPT的开发公司&#xff0c;成立于2015年&#xff0c;总部位于美国旧金山。OpenAI致力于开发和推广人工智能技术&#xff0c;包括自然语言处理、视觉识别、机器学习等领域&#xff0c;旨在推动人工智能技术对全球社会和经济的影响和发展。 除了chatGPT之外&…

美国有50%企业在用ChatGPT了!一半人表示员工已被AI取代

来源&#xff1a;新智元报道 编辑&#xff1a;Aeneas Ellie 【导读】美国最新调查显示&#xff0c;50%企业已经在用ChatGPT了&#xff0c;一半人表示&#xff0c;ChatGPT已经替代了员工。这一天终于来了&#xff1f; ChatGPT果然开始取代人类了&#xff01; 美国《财富》杂志…

ChatGPT引爆变革:第二个被颠覆的行业——在线客服

引言&#xff1a;随着人工智能技术的不断发展&#xff0c;许多行业都面临着前所未有的变革。ChatGPT&#xff0c;一种先进的自然语言处理技术&#xff0c;在内容创作领域取得了显著成果。如今&#xff0c;它正逐渐进入另一个领域——在线客服。本文将探讨ChatGPT如何改变在线客…

开发自己私有chatGPT(六)训练自己的chatGPT openai模型,微调模型,列出微调任务,使用自定义模型教程...

在开发私有chatGPT的时候&#xff0c;如果我们使用官方的基础模型&#xff0c;那么回答的问题可能不符合我们自己的预设答案 现在就是通过官方的训练方法&#xff0c;提供一部分数据进去&#xff0c;训练出自己的私有模型 按照工具 pip install --upgrade openai设置环境变量 e…

(第一集)ChatGPT prompt教程 - 让ChatGPT更好用,成为所有人的工作利器

未来所有人都会使用ChatGPT来提高自己的工作效率&#xff0c;为了让您更好的工作&#xff0c;小宋将为您整理一整套chatgpt使用教程。只需按照本系列教程学习&#xff0c;您终将成为使用ChatGPT的高手&#xff0c;工作效率高人一步。 欢迎加入我的gpt插件应用社区GPT-Kpi 社区…

chatgpt聊天时都有过哪些高情商回答?

这篇文章主要介绍了chatpartner&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获&#xff0c;下面让小编带着大家一起了解一下。 1、chatGPT是什么意思&#xff1f; ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天…

ChatGpt与Google 谁能给出最好的回答

ChatGPT由于其先进的会话和技术功能而越来越受欢迎。你可以问聊天机器人任何你想问的问题&#xff0c;它会在几秒钟内输出答案。虽然它不是一个搜索引擎&#xff0c;你应该使用ChatGPT作为你的信息来源而不是谷歌&#xff0c;百度吗? 我们来根据国外的一场测试来看一下 ChatG…

chatgpt在复杂问题的回答表现

2023年东南大学论文&#xff1a;Evaluation of ChatGPT as a Question Answering System for Answering Complex Questions 代码库已经无法访问了&#xff1a;https://github.com/tan92hl/Complex-Question-Answering- Evaluation-of-ChatGPT 1.简介 复杂问题的回答&#xff…

【关于ChatGPT的30个问题】8、ChatGPT能够理解并回答多语言问题吗?/ By 禅与计算机程序设计艺术

8、ChatGPT能够理解并回答多语言问题吗? ChatGPT能够理解并回答多语言问题吗?写一篇文章,分2级目录,要10个目录,不少于10000字。markdown格式。 目录 8、ChatGPT能够理解并回答多语言问题吗?