![ChatGPT的年代,测试会变的更重要_xml](//dev-img.mos.moduyun.com/20231028/a28338bf-869b-476a-952d-23f09d015b2e.png)
今天ChatGPT-4的新闻爆了,大家都听说了GPT-4多么的厉害,如果之前的ChatGPT是一个小学生, 那现在就是一个优秀的大学生,再加上博览群书,过目不忘。你说能力恐怖不恐怖。
尤其还擅长写程序,画个草图,一分钟生成你想要的网站。几分钟写一个小游戏。
但是,一本正经的胡说八道的问题仍然在。
这个家伙不仅仅会写程序,还会调程序,你把错误代码贴进去,就给你调好。
chatGPT就已经很牛了,比如昨天我就试了一下。
![ChatGPT的年代,测试会变的更重要_测试_02](//dev-img.mos.moduyun.com/20231028/e8fefc26-de5e-41d5-bac4-aba1df0c0eb1.png)
对于一个对OpenCV 只听过名字的来说,这个题目恐怕有点难。完了ChatGPT立马给了答案。
![ChatGPT的年代,测试会变的更重要_AIGC_03](//dev-img.mos.moduyun.com/20231028/3355646d-0e3e-42ea-ae18-039500bd3000.png)
给出代码:
import cv2
import numpy as np
# 车牌检测
def detect_plate(img):
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier('haarcascade_russian_plate_number.xml')
plates = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(50, 20))
if len(plates) == 0:
return None
else:
# 取最大的车牌区域
max_area = 0
max_plate = None
for (x, y, w, h) in plates:
if w * h > max_area:
max_area = w * h
max_plate = img[y:y + h, x:x + w]
return max_plate
# 字符分割
def segment_chars(plate):
gray = cv2.cvtColor(plate, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (3, 3), 0)
thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
# 垂直方向投影
hist = np.sum(thresh, axis=0)
chars = []
char_start = 0
char_end = 0
for i in range(len(hist)):
if hist[i] > 0 and char_start == 0:
char_start = i
elif hist[i] == 0 and char_start != 0 and char_end == 0:
char_end = i
if char_end - char_start > 10:
chars.append((char_start, char_end))
char_start = 0
char_end = 0
if char_start != 0 and char_end == 0:
chars.append((char_start, len(hist)))
return chars
# 车牌识别
cap = cv2.VideoCapture('video.avi')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
plate = detect_plate(frame)
if plate is not None:
chars = segment_chars(plate)
for i, char in enumerate(chars):
cv2.rectangle(plate, (char[0], 0), (char[1], plate.shape[0]), (0, 255, 0), 2)
cv2.imshow('plate', plate)
cv2.waitKey(0)
cap.release()
cv2.destroyAllWindows()
运行,遇到问题,就问这位程序员。
![ChatGPT的年代,测试会变的更重要_错误代码_04](//dev-img.mos.moduyun.com/20231028/206b07f4-2969-459b-a4d7-53676af9af16.png)
看都看不懂啊,重点是不需要你懂啊。
![ChatGPT的年代,测试会变的更重要_xml_05](//dev-img.mos.moduyun.com/20231028/b98bb77d-9dbf-429f-891d-d991dcca7ab1.png)
按提示进行,成功运行。
这么一长段,我们是在做什么,我们是在调试和测试。
测试写出来的东西,是不是你需要的,并反馈给我们这位程序员。
ChatGPT-4 ,相信,只要你提的出来,他就写的出来。
而写出来的是什么,需要测试来确认,且如何测试,如何考虑的全面,如何避免一些特殊情况,将需要你来提出来,并告诉他。
我们不再害怕修不好Bug, 而害怕提不出问题。
完,大家有条件的都玩一玩,确实好玩。也是一个学习的利器。
当然,其他也重要,提出让他写什么的产品,当然也很重要了。
更重要的,如何和这些天才程序员沟通,学习下prompt很有必要了。
欢迎关注公众号交流
![ChatGPT的年代,测试会变的更重要_xml_06](//dev-img.mos.moduyun.com/20231028/9cc82dab-877b-42b7-b474-a021c6f61186.png)