我试图在Matlab中制作高斯滤波器而不使用imfilter()和fspecial().我试过这个,但结果不像我和imfilter和fspecial那样.
这是我的代码.
function Gaussian_filtered = Gauss(image_x, sigma)
% for single axis
% http://en.wikipedia.org/wiki/Gaussian_filter
Gaussian_filtered = exp(-image_x^2/(2*sigma^2)) / (sigma*sqrt(2*pi));
end
Run Code Online (Sandbox Code Playgroud)
对于2D高斯,
function h = Gaussian2D(hsize, sigma)
n1 = hsize;
n2 = hsize;
for i = 1 : n2
for j = 1 : n1
% size is 10;
% -5<center<5 area is covered.
c = [j-(n1+1)/2 i-(n2+1)/2]';
% A product of both axes is 2D Gaussian filtering
h(i,j) = Gauss(c(1), sigma)*Gauss(c(2), sigma);
end
end
end
Run Code Online (Sandbox Code Playgroud)
最后一个是
function …Run Code Online (Sandbox Code Playgroud) 我试图关闭当前线程,它是多线程服务器的一部分.线程已准备好打开客户端可以访问的套接字.
除非下面的代码包含在while()循环中,否则一切正常.
new ServerThread(serversocket.accept(),this.Rstr,bag.numberofDatatoAcquire).start();
这是服务器的代码:
public void run() {
System.out.println("This has been called ");
try{
System.out.println("This has been tried");
serversocket = new ServerSocket(this.iPort);
Thread thisThread = Thread.currentThread();
while(!thisThread.isInterrupted()){
new ServerThread(serversocket.accept(), this.Rstr, bag.numberofDatatoAcquire).start();
//sending socket accessed, where it will store the data and how much it will collect it.
System.out.println("This has been running");
Thread.sleep(10);
}
}catch(InterruptedException e){
//why bother? it is an usual happening...lol
}catch(IOException ioe)
{
System.err.println("Can't open the socket on port");
}
finally{
System.out.println("Thread is dead and ready for …Run Code Online (Sandbox Code Playgroud) 

当您看到这些图片时,菜单项关闭后不会更新背景网格线和黑色矩形.我该如何更新?在C#中有一个事件处理程序可以自动更新,但我是Java swing GUI应用程序的新手.
这是代码:
public void paint(Graphics g) {
super.paintComponents(g);
MainDisplayForm mD = new MainDisplayForm();
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
int gridWidth = 1240;
int gridHeight = 400;
g2.fillRect(20, 50, gridWidth, gridHeight);
g2.setColor(Color.darkGray);
paintGrid(g2,gridWidth, gridHeight);
g2.setColor(Color.red);
Line2D line = new Line2D.Float(20, 50, 250, 260);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//g2.draw(line); //pending
g2.dispose();
}
private void paintGrid(Graphics g, int gridWidth, int gridHeight)
{
for(int i=20; i<gridWidth+20; i=i+10)
{
g.drawLine(i, 50, i, gridHeight+49);
}
for(int i=50; i<gridHeight+50; i=i+10)
{
g.drawLine(20, i, 1259, i);
} …Run Code Online (Sandbox Code Playgroud)