我对不同的java框架非常困惑.我想创建一个java服务器项目来提供一些Restful web服务,但我真的不知道应该选择哪个框架.JSF,EJB,Hibernate和Spring有什么区别?请多帮我理解一下.
我正在尝试实现本文中描述的算法:
以下是该算法的解释:
我们
N用采样频率记录了一系列连续的散斑图像fs.通过这种方式,可以观察像素如何通过N图像进化.该演变可以被视为时间序列并且可以以下面的方式处理:对应于每个像素的演变的每个信号被用作一组滤波器的输入.先前将强度值除以它们的时间平均值,以最小化物体的反射率或照度的局部差异.可以充分分析的最大频率取决于采样定理和采样频率的一半fs.后者由CCD相机,图像大小和帧抓取器设置.滤波器组如图1所示.
在我们的例子中,使用了10个5阶巴特沃斯滤波器,但是这个数量可以根据所需的区分来改变.该银行使用MATLAB软件在计算机中实现.我们选择了Butter-worth过滤器,因为除了简单之外,它还是最平坦的.可以使用其他滤波器,无限脉冲响应或有限脉冲响应.
借助于该滤波器组,获得每个临时像素演变的每个滤波器的十个对应信号作为输出.然后计算每个信号的平均能量Eb:
其中
pb(n)对于滤波器的第n个图像中的滤波的像素的强度b通过其平均值分割N是图像的总数.以这种方式,En获得每个像素的能量值,每个下摆属于图1中的一个频带.利用这些值,可以构建活动对象的十个图像,每个图像显示在某个频带中有多少时变斑点的能量.对结果中灰度级的错误颜色分配将有助于区分.
这是我的MATLAB代码基础:
for i=1:520
for j=1:368
ts = [];
for k=1:600
ts = [ts D{k}(i,j)]; %%% kth image pixel i,j --- ts is time series
end
ts = double(ts);
temp = mean(ts);
if (temp==0)
for l=1:10
filtImag1{l}(i,j)=0;
end
continue;
end
ts = ts-temp;
ts = ts/temp;
N = 5; % filter order
W = [0.0 0.10;0.10 0.20;0.20 …Run Code Online (Sandbox Code Playgroud) 我试图从RSS源加载一些上下文,并在春天使用ehcache库将其作为缓存传递给客户端.这是我的代码:
import org.springframework.cache.annotation.Cacheable;
@Service
public class GlossaryReaderService {
@Cacheable(value = "glossaryList")
public List<Glossary> readGlossary(String url) {
XmlReader reader = null;
List<Glossary> extractedGlossay = new ArrayList<Glossary>();
SyndEntry entry;
SyndContent desc;
Glossary glossaryList = null;
try {
String decodedURL = URLDecoder.decode(url, "UTF-8");
reader = new XmlReader(new URL(decodedURL));
SyndFeed feed = new SyndFeedInput().build(reader);
for (Iterator i = feed.getEntries().iterator(); i.hasNext();) {
entry = (SyndEntry) i.next();
desc = entry.getDescription();
if (desc != null) { ...
extractedGlossay.add(glossaryList);
}
}
}
} catch (IOException | IllegalArgumentException | …Run Code Online (Sandbox Code Playgroud) 这个问题与我之前在stackoverflow 中的Matlab中的图像处理算法有关,我已经得到了我想要的结果.
但现在我面临另一个问题,并在过程图像中获得一些人工制品.在我的原始图像(600张图像的堆栈)中我看不到任何人工制品,请从指甲看原始图像:

但在我的10个处理结果中,我可以看到这些行:

我真的不知道他们来自哪里?
此外,如果它们属于相机的传感器,为什么我不能在原始图像中看到它们?任何的想法?
编辑:
我添加了@Jonas建议的以下代码.它减少了人工制品,但没有完全去除它们.
%averaging of images
im = D{1}(:,:);
for i = 2:100
im = imadd(im,D{i}(:,:));
end
im = im/100;
imshow(im,[]);
for i=1:100
SD{i}(:,:)=imsubtract(D{i}(:,:),im(:,:))
end
Run Code Online (Sandbox Code Playgroud)
@belisarius已经要求提供更多图像,所以我要从我的手指上传4个图像,散斑图案和4个黑色背景图像(1280x1024):

这是黑色背景:

我正在使用framegrabber,需要从计算机内存中获取图像并将其保存在图像文件中.在尝试了几天之后,我最终得到了以下2个函数,这些函数创建了一个文件,Windows操作系统可以运行.bmp文件,但位图文件是黑色的(图像大小为900KB,640*480).有没有人知道为什么,图片是黑色的?这里有两个功能:
LPSTR CreateBMP( HWND hAppWnd, int nImageType )
{
void * pWinGBits = NULL;
int i;
Z_BITMAPINFO zWinGHeader; // bitmapinfo for cerating the DIB
// create DC for bitmap.
hDCBits = CreateCompatibleDC( ghDCMain );
switch ( nImageType )
{
case bayer_filter:
zWinGHeader.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
zWinGHeader.bmiHeader.biPlanes = 1;
zWinGHeader.bmiHeader.biClrImportant = 0;
zWinGHeader.bmiHeader.biHeight = -lYSize;
zWinGHeader.bmiHeader.biWidth = lXSize;
zWinGHeader.bmiHeader.biBitCount = 32;
zWinGHeader.bmiHeader.biClrUsed = 0;//3;
zWinGHeader.bmiHeader.biCompression = BI_BITFIELDS;
zWinGHeader.bmiHeader.biSizeImage = 0;
zWinGHeader.bmiColors[0].rgbBlue = 0x00;
zWinGHeader.bmiColors[0].rgbGreen = 0x00;
zWinGHeader.bmiColors[0].rgbRed = 0xFF;
zWinGHeader.bmiColors[0].rgbReserved …Run Code Online (Sandbox Code Playgroud) 我有一个简单的C++代码,但我不知道如何使用析构函数:
class date {
public:
int day;
date(int m)
{
day =m;
}
~date(){
cout << "I wish you have entered the year \n" << day;
}
};
int main()
{
date ob2(12);
ob2.~date();
cout << ob2.day;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我应该在我的析构函数代码中写什么,在调用析构函数之后,它会删除day变量?
我正在使用openCV和c ++实现一个图像分析算法,但我发现openCV没有任何功能正式用于Butterworth Bandpass过滤器.在我的项目中,我必须将时间序列的像素传递到Butterworth 5阶滤波器中,该函数将返回滤波后的时间序列像素.巴特沃思(像素系列,顺序,频率),如果你有任何想法帮助我如何开始请告诉我.谢谢
编辑: 在获得帮助后,我最终想出了以下代码.它可以计算分子系数和分母系数,但问题是有些数字与matlab结果不一样.这是我的代码:
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
using namespace std;
#define N 10 //The number of images which construct a time series for each pixel
#define PI 3.14159
double *ComputeLP( int FilterOrder )
{
double *NumCoeffs;
int m;
int i;
NumCoeffs = (double *)calloc( FilterOrder+1, sizeof(double) );
if( NumCoeffs == NULL ) return( NULL );
NumCoeffs[0] = 1;
NumCoeffs[1] = FilterOrder;
m = FilterOrder/2;
for( i=2; i <= m; ++i)
{
NumCoeffs[i] =(double) …Run Code Online (Sandbox Code Playgroud) 我有一个java框架,我想在3或4秒后自动关闭它.我发现我必须使用线程.但我不知道如何做到这一点,这是我的代码中的一个部分:
package intro;
import java.awt.*;
import java.io.IOException;
//import view.LangMenu;
public class IntroClass extends Frame {
private int _screenWidth = 0;
private int _screenHeight = 0;
private int _screenCenterx = 0;
private int _screenCentery = 0;
//private static final String SOUND_PATH="/sounds/introSound.midi";
public IntroClass() {
Toolkit thisScreen = Toolkit.getDefaultToolkit();
Dimension thisScrrensize = thisScreen.getScreenSize();
_screenWidth = thisScrrensize.width;
_screenHeight = thisScrrensize.height;
_screenCenterx = _screenWidth / 2;
_screenCentery = _screenHeight / 2;
setBackground(Color.pink);
Label lbl = new Label("Welcome To Dots Game. Samaneh Khaleghi", Label.CENTER);
add(lbl); …Run Code Online (Sandbox Code Playgroud) 嗨,我想在我的netbeans 6.9.1项目中添加sqlite驱动程序,这些是我已经完成的步骤:
无法添加连接.无法与jdbc建立连接:sqlite:/ using org.sqlite.JDBC -unable找到合适的驱动程序 - .
请让我知道如何为简单的数据库创建此连接.谢谢