###### dsm1998
2014-07-04 16:21

How do you take the FFT of an image in Google Go?

The Go DSP library (github.com/mjibson/go-dsp/fft) has a function for a 2D FFT with the following signature:

``````func FFT2Real(x [][]float64) [][]complex128
``````

How do I convert an image from the standard go image types to float64? Is this the right approach?

Here is a link to the documentation.

#### 图片转代码服务由CSDN问答提供 功能建议

Go DSP库（github.com/mjibson/go-dsp/fft）具有具有以下签名的2D FFT函数：

``` ``` func FFT2Real（x [] [] float64）[] [] complex128

如何将图像从标准go图像类型转换为float64  ？ 这是正确的方法吗？

这是文档的链接<  /a>。
``````
` `
``` 写回答 好问题 提建议 追加酬金 关注问题 分享 邀请回答 ```
``` 1条回答 默认 最新 doushan5222 2014-07-04 22:30 最佳回答 You have two options, both involve copying the pixels. You can either use the methods provided by the Image interface, namely At(x,y) or you can assert the image to one of the image types provided by the image packet and access the Pix attribute directly. Since you will most likely be using a Gray image, you could easily assert your image to type *image.Gray and access the pixels directly but for the sake of abstraction I did not in my example: inImage, _, err := image.Decode(inFile) // error checking bounds := inImage.Bounds() realPixels := make([][]float64, bounds.Dy()) for y := 0; y < bounds.Dy(); y++ { realPixels[y] = make([]float64, bounds.Dx()) for x := 0; x < bounds.Dx(); x++ { r, _, _, _ := inImage.At(x, y).RGBA() realPixels[y][x] = float64(r) } } This way you read all the pixels of your image inImage and store them as float64 values in a two-dimensional slice, ready to be processed by fft.FFT2Real: // apply discrete fourier transform on realPixels. coeffs := fft.FFT2Real(realPixels) // use inverse fourier transform to transform fft // values back to the original image. coeffs = fft.IFFT2(coeffs) // write everything to a new image outImage := image.NewGray(bounds) for y := 0; y < bounds.Dy(); y++ { for x := 0; x < bounds.Dx(); x++ { px := uint8(cmplx.Abs(coeffs[y][x])) outImage.SetGray(x, y, color.Gray{px}) } } err = png.Encode(outFile, outImage) In the code above I applied FFT on the pixels stored in realPixels and then, to see whether it worked, used inverse FFT on the result. The expected result is the original image. A full example can be found here. 评论 解决 无用 打赏 分享 举报 报告相同问题？ 提交 关注问题 相关推荐 更多相似问题 在Google Go中对图像进行FFT 2014-07-04 16:21 回答 1 已采纳 You have two options, both involve copying the pixels. You can either use the methods provided by VIVADO FFT中输入数据正负号问题 fpga开发 2022-03-29 16:58 回答 1 已采纳 这个 IP 我没用过，也没研究过看你的说明 [47：24]为虚部，[23:0]为实部用法：数据赋给[23：0]，而高位则直接赋了24位0感觉没问题，你送的数据有正数、负数是有符号数，这样做没问题。FF 做fft图像问题。三角函数 matlab有问必答 2022-03-10 09:09 回答 2 已采纳 代码供参考，有帮助望采纳哟 x = linspace(0,2*pi,1024); Fs = 1/(x(2)-x(1)); y = x.^2.*cos(x); N = length(y); 2018最新精选的Go框架，库和软件的精选列表 二 2019-01-04 11:02 秋天的春的博客 2018最新精选的Go框架，库和软件的精选列表 二 ... S2几何 - Go中的S2几何库。 Tile38 - 具有空间索引和实时地理围栏的地理位置数据库。 去编译器 编译工具转到其他语言。 gopherjs - 转到Jav... python语言的发展趋势_Python的趋势：当今最热门的语言中的热点 2020-09-01 09:17 culh2177的博客 python语言的发展趋势Python is arguably the programming language nowadays. We’ll explore why that might be the case, what the current trends within the Python community are, and what packages and ... 精选的 Go 框架，库和软件的精选清单 2020-05-09 11:24 思月行云的博客 这是一个 Go 相关的框架，库和软件的精选清单，引用自awesome-go项目，并翻译补充而来这是一个 Go 相关的框架，库和软件的精选清单，引用自awesome-go项目，并翻译补充而来 如果看到不再维护的项目，请及时联系... CCS调用FFT后，频率不对的问题。 2018-08-23 07:19 回答 2 已采纳 结题。已查明原因：没有理解对fft函数输出的涵义，GRAPH显示的只是复数数组，图像与频谱有一定的对应关系。 请教下关于FFT算法生成频谱图的问题 人工智能机器学习深度学习 2021-03-18 11:39 回答 5 已采纳 先说你程序的错误： 傅里叶变换和逆变换都没毛病，但你的二维复数矩阵的定义，错了； 我标出来了，你自己应该能改出来 public class Complex2D { private Li 在频率域将图像的三层相加，逆傅立叶变换后显示的结果为什么丢失了颜色？ matlab图像处理有问必答 2021-11-23 23:09 回答 1 已采纳 图像要RGB三个通道，你把三层叠加自然就是灰度图了，建议是：把 G=F1+F2+F3; G0=ifft2(ifftshift(G)); subplot(122);imshow(G0,[]);title 2018最新精选的Go框架，库和软件的精选列表 二 https://awesome-go.com/ 2019-01-25 08:56 sanshengshi134的博客 S2几何 - Go中的S2几何库。 Tile38 - 具有空间索引和实时地理围栏的地理位置数据库。 去编译器 编译工具转到其他语言。 gopherjs - 转到JavaScript的编译器。 llgo - Go的基于LLVM的编译器。... Go框架，库和软件的精选列表 2019-05-05 15:55 思月行云的博客 2018最新精选的Go框架，库和软件的精选列表 一 https://awesome-go.com/ 2018最新精选的Go框架，库和软件的精选列表 二 https://awesome-go.com/ 2018最新精选的Go框架，库和软件的精选列表 三 ... 如何成为一名Google工程师 2016-12-31 10:33 大大大zzc的博客 [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 原文地址：Google Interview University 原文作者：John Washam 译文出自：掘金翻译计划 译者：Aleen，Newton，bobmayuze，... NPY and FFT 算法 2017-02-19 11:59 回答 2 已采纳 http://blog.csdn.net/u012605629/article/details/41925641 数字信号处理方面问题，数字信号做DFT或者FFT后到底是有什么作用？ 图像处理 2021-08-26 16:05 回答 1 已采纳 一般是用来获取频谱，频谱有什么用看你实际环境了 matlab中对一个矩阵做二维傅里叶变换 matlab 2022-03-29 21:07 回答 2 已采纳 当X是一个矩阵时，fft(X)是把每个列作为向量，得到每列元素的傅里叶变换。 Google Interview University | 坚持完成这套学习手册，你就可以去 Google 面试了 2018-06-26 14:28 隐秀_的博客 Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 原文地址：Google Interview University 原文作者：John Washam 译文出自：掘金翻译计划 译者：aleen42，Newton，bobmayuze，... 计算机视觉四大基本任务(分类、定位、检测、分割) 2018-09-10 18:00 Britesun的博客 然而，论文通常非常简明扼要并假设读者已对深度学习有相当的理解，这使得初学者经常卡在一些概念的理解上，读论文似懂非懂，十分吃力。另一方面，即使有了简单易用的深度学习框架，如果对深度学习常见概念和基本思路... [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 2018-10-04 21:23 小黑_BUPT的博客 [译] Google Interview University 一套完整的学习手册帮助自己准备 Google 的面试 十一七天乐，看池博的github，发现这个markdown，转过来一下 原链接：... 51单片机傅里叶变换fft谐波 c语言 2022-05-04 17:18 回答 1 已采纳 51要自己写FFT了吧，DSP有库函数 Python 趋势：当今最热门语言的热门话题 2022-01-14 16:21 程序员孔乙己的博客 如果您正在考虑应该在哪种编程语言上投入时间和精力，您现在可以停止搜索。是蟒蛇。 好吧，那是过于简单化了。诚然，您不会仅仅因为它“热”就跳入一个已经开发多年的 Java 项目，只是为了将所有代码移植到 Python ... 没有解决我的问题, 去提问```
``` 点击登录 提问题 ◇ 欢迎建议意见◇ 用户帮助中心◇ 回答首次被采纳有奖◇ 奖惩公告 悬赏问题 ¥200 有没有前端DL会quasar和云屋SDK的，有红包 ¥200 python+selenium处理腾讯滑动验证码，界面拖动和校验没问题，但是提交后提示“验证码校验失败” ¥200 C#如何实现Unity3D环境基于维特智能蓝牙低功耗BLE传感器的多节点姿态再现问题 ¥100 交换机phy状态寄存器读显示up，但是转发有时断流，请问什么原因？ ¥100 无法执行赋值，因为左侧的大小为 2-by-1，右侧的大小为 2-by-2。 ¥100 请问如何阻止按下电源键关机时出现的结束程序弹窗 ¥100 sqlserver的存储过程转oracle ¥100 stm32f103求一个高效率的fft算法测频 ¥80 求个matlab模型代码，有关最优速度曲线的 ¥80 一道大学编译原理实验题，20点交，马上要交了，帮一下 ```
``` ```
``` window.csdn.sideToolbar = { options: { afterFinished: function () { setTimeout(function () { var helphtml = '<a class="option-box" data-type="help" href="https://ask.csdn.net/questions/7441224" target="_blank">'+'<img src="https://g.csdnimg.cn/side-toolbar/2.5/images/bangzhucopy.png" alt="" srcset="">'+ '<span class="show-txt">帮助</span></a>'; \$('.csdn-side-toolbar > a:last').before(helphtml); }, 300); }, contentEl: document.getElementsByClassName('floor')[0] } } ```