小编Dav*_*son的帖子

从相位和幅度进行傅里叶变换 - Matlab

傅立叶变换F的幅度和相位定义为:

Mag = sqrt(Real(F)^2 + Imaginary(F)^2)
Run Code Online (Sandbox Code Playgroud)

Phase = arctan(Imaginary(F)/Real(F))
Run Code Online (Sandbox Code Playgroud)

我曾尝试编写matlab代码,该代码采用灰度图像矩阵,对矩阵执行fft2(),然后根据变换计算幅度和相位.然后我想计算傅里叶变换的虚部和实部.这是通过将前两个方程重新排列为:

Real = Mag/sqrt(1 + tan(Phase)^2)
Run Code Online (Sandbox Code Playgroud)

Imaginary = Real*tan(Phase)
Run Code Online (Sandbox Code Playgroud)

最后组合和逆fft2:

F = Real + i*Imaginary
image = ifft2(F)
Run Code Online (Sandbox Code Playgroud)

我希望看到与输入相同的图像,但我得到了垃圾.我的数学错了吗?我的matlab mfile代码如下:

function y = forwardBackwardFFT(image)

F = fft2(image);
mag = sqrt(real(F).^2 + imag(F).^2);
phase = atan(imag(F)./real(F));

re = sqrt((mag.^2)./(1 + tan(phase).^2));
im = re.*tan(phase);
F = re + i*im;
f = ifft2(F);

subplot(1,2,1);
imshow(image);
Title('Original Image');

subplot(1,2,2);
imshow(f);
Title('Image after forward and backward FFT');
y = f;
Run Code Online (Sandbox Code Playgroud)

非常感谢 :)

matlab signal-processing fft image-processing

19
推荐指数
1
解决办法
3万
查看次数

将id字段添加到GSP <g:form>标记的HTML结果

我创建一个GSP表单,我希望使用$ .ajax()调用提交.

我知道GSP会被渲染到浏览器看到的最终HTML中,因此javascript可以调用普通的HTML元素.

我的表单是这样创建的:

<g:form action="save" id="callmeForm" >
  <fieldset class="form">
    <g:render template="form"/>
  </fieldset>
  <fieldset class="buttons">
    <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
  </fieldset>
</g:form>
Run Code Online (Sandbox Code Playgroud)

但是当最终表单以HTML格式呈现时,它缺少我在标记中给出的id字段:

<form action="/racetrack/callback/save/callmeForm" method="post" >
  <fieldset class="form">
    etc...
Run Code Online (Sandbox Code Playgroud)

有没有办法让我可以获取id属性,所以我可以用javascript的id引用表单?

html grails gsp

7
推荐指数
1
解决办法
3071
查看次数

从Runnable类中访问共享变量

我需要在Main类的main()方法中定义一个共享变量.我需要两个线程才能访问该共享变量.我通过实现Runnable接口并实现接口的抽象run()方法来创建线程.如何在我的类中定义的实现Runnable接口的run()方法中引用Main类的main()方法中定义的共享变量?显然,只是按名称调用它们是行不通的 - 因为它们出现在我的Runnable类的范围之外.

编辑 - 道歉,这是一个简单的例子

public Class DoThread implements Runnable {

    public void run(){
        sharedVar += 1
    }


}
Run Code Online (Sandbox Code Playgroud)

并在一个单独的.class文件中:

public Class Main {

    public static void main(String[] args) {
        int sharedVar = 0;

        Thread t1 = new Thread(new DoThread());
        Thread t2 = new Thread(new DoThread());

        t1.start();
        t2.start();

        t1.join();
        t2.join();

    }


}
Run Code Online (Sandbox Code Playgroud)

那么我应该创建一个对象来存储共享var,然后在创建线程时将该对象传递给两个DoThread()构造函数?有时在java通过ref或传递var之间会感到困惑,所以如果我这样做,t2会看到t1对共享变量的影响吗?

java multithreading shared-memory

6
推荐指数
2
解决办法
2万
查看次数

在iframe上覆盖画布-HTML

我正在忙着编写一个生成HTML代码的servlet。目的是创建一个热图,以供人们根据所存储的点击数据在网站上点击。我发现使用javascript在画布中创建热图,现在我想将该画布覆盖在点击信息所针对的网页上。

到目前为止,这是我的HTML,它成功生成了热图,并创建了iframe。iframe覆盖在热图上。目前,我不知道如何使iframe的大小与网页的大小相同,以致似乎正在查看的网站上覆盖了热图:

<html> 
    <head> 
        <style> 
            #heatmapArea{
            position:relative;
            float:left;
            width:410px;
            height:410px;
                            z-index:1000;
            border:1px dashed black;

                    #iframeArea{
                            position:relative;
                            float:left;
                            width:100%;
                            height:100%
                            z-index:1;
                    }
        }
    </style> 
</head> 

<body> 
    <div id="main"> 
        <div id="heatmapArea"> 
                        <div id="iframeArea">
                            <iframe src="www.google.com"></iframe>
                        </div>

        </div> 
    </div> 

    <script type="text/javascript" src="heatmap.js"></script> 
    <script type="text/javascript"> 


    window.onload = function(){
        var xx = h337.create({"element":document.getElementById("heatmapArea"), "radius":10, "visible":true});
        var el = "{max: 100, data: [{x: 20, y: 20, count: 10},{x: 200, y: 200, count: 43},{x: 200, y: 400, count: 7},{x: 380, y: 400, count: 6},{x: 400, y: 400, …
Run Code Online (Sandbox Code Playgroud)

html iframe overlay canvas z-index

5
推荐指数
1
解决办法
4404
查看次数

Grails Resources插件,模块和<r:img>来渲染图像?

试图学习资源插件

根据我的理解,它有助于定义"资源",如css和javascript文件,并在需要时自动将它们拉入你的gsp.我了解如何创建可以使用标签等加载的模块.

我不理解的部分是:http://grails-plugins.github.com/grails-resources/guide/4.%20Using%20resources.html#4.2%20Linking%20to%20images

所以我在Config.groovy中创建了一个名为"images"的模块,如下所示:

grails.resources.modules = {
    images {
        resource url:'/images/view.jpg', attrs:[width: 1280, height:720 , alt: 'my view']
        resource url:'/images/breakfast.jpg', attrs:[width: 1280, height:720, alt: 'breakfast']
    }
}
Run Code Online (Sandbox Code Playgroud)

资源包含在head部分的.gsp页面中,如下所示:

<head>
  <r:require modules="jquery-ui, blueprint"/>
</head>
Run Code Online (Sandbox Code Playgroud)

我知道资源已成功添加到head部分,因为当我检查页面源时,我在那里看到它们:

<link href="/ResourceTest/static/Aa7jV0N2qZjOz7TLZ9cl5cREIh2y5jJYV0ytn4nQg9r.jpg" rel="shortcut icon" width="1280" height="720" alt="my view" />
<link href="/ResourceTest/static/IpQBSjrYeLDdSUBGbP3jhf6Kkhvu1zV3XRtwWfKOIMn.jpg" rel="shortcut icon" width="1280" height="720" alt="breakfast" />
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何使用图像资源?我的意思是我知道如果它是javascript,导入资源可以让你访问使用html代码中的函数,但是对于图像,网站上写着"一旦你完成了这个,用它来引用它们会自动设置宽度,高度和其他属性."

怎么样?我尝试过以下方法:

<r:img module="images">
<r:img alt="breakfast">
Run Code Online (Sandbox Code Playgroud)

还有少数人没有成功

工作是什么:

<r:img uri="/images/breakfast.jpg">
Run Code Online (Sandbox Code Playgroud)

但无论你是否使用r:require标签添加模块,这都有效.那么,对于图像使用这个插件是什么意思,我将如何使用它?

grails plugins module image

5
推荐指数
1
解决办法
2315
查看次数

"找不到符号"错误 - 即使是一个荒谬简单的例子

所以我一直试图在几个小时内解决这个问题.我已经浏览了互联网,我已经搜索了StackOverflow,我问过一些同事(我是实习生)老实说,没有人能告诉我发生了什么!我把一个非常简单的例子放在一起向你展示我在做什么(即使用简单的例子我也得到错误)

我有两个.java文件.一个是Test.java另一个是testClass.java.

//testClass.java

package test;

public class testClass {
    private int someMember=0;

    public testClass(){
        //kill me now
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我有我的Test.java文件,其中包含我的main方法.(虽然在我真正的问题中我没有主方法 - 它是一个带doGet()方法的servlet )

//Test.java
package test;

public class Test {

    public static void main(String[] args) {
        testClass myTest = new testClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下内容进行编译(从Windows命令行,使用当前目录保存我的.java文件):

..java bin location..\javac testClass.java
Run Code Online (Sandbox Code Playgroud)

这非常正常,我在当前目录中获得了一个testClass.class文件.然后,我尝试使用以下内容编译Test.java文件(再次在工作目录中):

..java bin location..\javac -classpath . Test.java
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Test.java:6: cannot find symbol
symbol : class testClass
location : class test.testClass
   testClass myTest = new …
Run Code Online (Sandbox Code Playgroud)

java symbols compilation javac classpath

4
推荐指数
1
解决办法
2万
查看次数