MATLAB科研图像处理——基于ChatGPT编程

ChatGPT2年前 (2023)发布 一起用AI
737 0 0

ChatGPT是一个由OpenAI训练的大型语言模型,可以进行对话、文本生成、问答等多种任务。它使用了Transformer架构,能够从大量语料中学习语言特征。

ChatGPT可以在编程领域有多种应用,其中一些主要的应用如下:

代码生成:可以根据输入的需求或描述生成相应的代码。代码提示:可以根据用户输入的代码片段,提供相应的代码提示和补全。故障诊断:可以利用ChatGPT分析错误日志并给出相应的解决方案。文档生成:可以根据输入的代码生成相应的文档。自动测试:可以根据输入的代码生成相应的单元测试。数据科学:可以使用ChatGPT来自动生成模型和数据集的描述。

不过需要注意的是, ChatGPT是一个非常强大的语言模型,但它并不是万能的,在生成代码的场景下还需要人工编程和检查。

ChatGPT是一个语言模型,它不能直接编写代码,但可以根据输入的需求或描述生成相应的代码。 ChatGPT是一个通用语言模型,能够学习任何语言。所以它可以支持许多编程语言,包括但不限于:JavaScript, Python, C++, C#, Java, Ruby, PHP, R, Swift等。

需要注意的是,ChatGPT的能力取决于它所学习的语料,如果语料中没有某种语言的代码,那么ChatGPT就不能生成这种语言的代码。

这篇文章会介绍怎样利用ChatGPT生成MATLAB的代码,实现基于ChatGPT的快速编程。

一、打开ChatGPT网站

怎么能使用ChatGPT,确实是一个难题,需要两个条件:

会用除了香港外的全局代理会使用接码

大家自行搜索吧。

ChatGPT界面如下:

MATLAB科研图像处理——基于ChatGPT编程

二、用英语描述问题

虽然ChatGPT支持中文,但个人经验觉得用英文描述,ChatGPT更能明白你的意思。

这里举一个例子,如果我想让ChatGPT生成一个,基于MATLAB的,对图片进行DoG filter的函数,可以这么说:

这里我直接用的DoG来代指Difference of Gaussians,ChatGPT照样是可以理解的。

这是ChatGPT给出的代码:

MATLAB科研图像处理——基于ChatGPT编程

代码:

functionfiltered_image =dog_filter(image, sigma1, sigma2)% convert image to grayscale
image_gray = rgb2gray(image);

% apply Gaussian filter with sigma1
g1 = fspecial(gaussian, [5 5], sigma1);
filtered1 = imfilter(image_gray, g1, same);

% apply Gaussian filter with sigma2
g2 = fspecial(gaussian, [5 5], sigma2);
filtered2 = imfilter(image_gray, g2, same);

% subtract filtered2 from filtered1 to get DoG filter result
filtered_image = filtered1 filtered2;
end

这里ChatGPT对于变量的命名以及注释都是值得学习的,同时ChatGPT还给出了这个函数的使用案例和说明:

三、进一步细化描述,让ChatGPT优化代码

这里ChatGPT给出的函数,默认的kernel是[5 5]。

如果我们想把这个kernel变成函数里需要传入的变量,可以进一步添加描述。

因为ChatGPT有上下文的记忆,所以可以直接问:

MATLAB科研图像处理——基于ChatGPT编程

这里会发现虽然kernel变成了可定义的变量,但ChatGPT默认这个kernal不是高斯的了。

我们可以进一步修正我们的描述:

MATLAB科研图像处理——基于ChatGPT编程

可以非常口语化地描述问题

还非常贴心的告诉我,这个filter有什么特点和作用:

MATLAB科研图像处理——基于ChatGPT编程

修正后的代码:

functionfiltered_image =dog_filter(image, sigma1, sigma2, kernel_size)% convert image to grayscale
image_gray = rgb2gray(image);

% apply Gaussian filter with sigma1
g1 = fspecial(gaussian, kernel_size, sigma1);
filtered1 = imfilter(image_gray, g1, same);

% apply Gaussian filter with sigma2
g2 = fspecial(gaussian, kernel_size, sigma2);
filtered2 = imfilter(image_gray, g2, same);

% subtract filtered2 from filtered1 to get DoG filter result
filtered_image = filtered1 filtered2;
end

最后:

MATLAB科研图像处理——基于ChatGPT编程

如果对于MATLAB图像处理有什么问题可以私信我,或者给我发邮件:zhaoyc9@163.com

更多图像处理的教程可以关注我的专栏:

MATLAB科研图像处理​www.zhihu.com/column/c_1280465791246987264MATLAB科研图像处理——基于ChatGPT编程
ImageJ开发教程zhuanlan.zhihu.com/c_1101076075773370368MATLAB科研图像处理——基于ChatGPT编程

希望对大家有帮助~

© 版权声明

相关文章