亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pde.cpp

?? 圖像分割算法
?? CPP
字號:
//Copyright (c) 2004-2005, Baris Sumengen
//All rights reserved.
//
// CIMPL Matrix Performance Library
//
//Redistribution and use in source and binary
//forms, with or without modification, are
//permitted provided that the following
//conditions are met:
//
//    * No commercial use is allowed. 
//    This software can only be used
//    for non-commercial purposes. This 
//    distribution is mainly intended for
//    academic research and teaching.
//    * Redistributions of source code must
//    retain the above copyright notice, this
//    list of conditions and the following
//    disclaimer.
//    * Redistributions of binary form must
//    mention the above copyright notice, this
//    list of conditions and the following
//    disclaimer in a clearly visible part 
//    in associated product manual, 
//    readme, and web site of the redistributed 
//    software.
//    * Redistributions in binary form must
//    reproduce the above copyright notice,
//    this list of conditions and the
//    following disclaimer in the
//    documentation and/or other materials
//    provided with the distribution.
//    * The name of Baris Sumengen may not be
//    used to endorse or promote products
//    derived from this software without
//    specific prior written permission.
//
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
//HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
//EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
//NOT LIMITED TO, THE IMPLIED WARRANTIES OF
//MERCHANTABILITY AND FITNESS FOR A PARTICULAR
//PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
//CONTRIBUTORS BE LIABLE FOR ANY
//DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
//EXEMPLARY, OR CONSEQUENTIAL DAMAGES
//(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
//OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
//DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
//HOWEVER CAUSED AND ON ANY THEORY OF
//LIABILITY, WHETHER IN CONTRACT, STRICT
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
//OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
//OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.



#include "./PDE.h"





namespace PDE
{

	Vector<float> tridiagonal_solve(Vector<float>& a, Vector<float>& b, Vector<float>& c, Vector<float>& w)
	{
		// Finds the tridiagonal solution for Mu = w, M is NxN
		// a,b,c are the diagonals from left to right all length N
		// with a(0) and c(end) are irrelevant;
		
		int n = b.Numel();
		Vector<float> x(n);
		Vector<float> y(n);
		Vector<float> u(n);
		
		x[n-1] = -a[n-1]/b[n-1];
		y[n-1] = w[n-1]/b[n-1];
		
		for(int i=n-2;i>=1;i--)
		{
			x[i] = -a[i]/(b[i] + c[i]*x[i+1]);
			y[i] = (w[i] - c[i]*y[i+1])/(b[i] + c[i]*x[i+1]);
		}
		
		x[0] = 0;
		y[0] = (w[0] - c[0]*y[1])/(b[0] + c[0]*x[1]);
		
		u[0] = y[0];
		for(int i=1; i<=n-1; i++)
		{
			u[i] = x[i]*u[i-1]+y[i];
		}
		
		return u;
	}



	Vector<float> Poisson1D(Vector<float>& v, float dx, BoundaryCondition boundary)
	{

		//tridiagonals
		Vector<float> a;
		Vector<float> b;
		Vector<float> c;

		Vector<float> ou; 
		if(boundary == Neumann)
		{
			a = Vector<float>(v.Numel(), 1);
			b = Vector<float>(v.Numel(), -2);
			c = Vector<float>(v.Numel(), 1);

			b(0) = -1;
			b(b.Numel()-1) = -1;
			ou = tridiagonal_solve(a, b, c, v*(dx*dx));
		}
		else
		{
			a = Vector<float>(v.Numel()-2, 1);
			b = Vector<float>(v.Numel()-2, -2);
			c = Vector<float>(v.Numel()-2, 1);
			ou = Vector<float>(v.Numel(), 0);
			ou(1, v.Numel()-2) = tridiagonal_solve(a, b, c, v.Slice(1, v.Numel()-2)*(dx*dx));
		}

		//Vector<float> a(v.Numel()-2, 1);
		//Vector<float> b(v.Numel()-2, -2);
		//Vector<float> c(v.Numel()-2, 1);

		return ou;
	}

	Vector<float> Poisson1DFFT(Vector<float>& v, float dx, BoundaryCondition boundary)
	{
		Vector<float> V;
		if(boundary == Neumann)
		{
			V = FFTCos(v);
		}
		else
		{
			V = FFTSin(v);
		}

		V(0) = 0;
		for(int i=1; i<v.Numel(); i++)
		{
			V(i) *= float(4*dx*dx/(2*cos(2*PI*i/(v.Numel()))-2));
		}

		Vector<float> poi;
		if(boundary == Neumann)
		{
			poi = IFFTCos(V);
		}
		else
		{
			poi = IFFTSin(V);
		}
		return poi;
	}

	Matrix<float> Poisson2DFFT(Matrix<float>& v, float dx, BoundaryCondition boundary)
	{
		Matrix<float> V;
		if(boundary == Neumann)
		{
			V = FFT2Cos(v);
		}
		else
		{
			//V = FFTSin(v);
		}

		for(int i=0; i<v.Rows(); i++)
		{
			for(int j=0; j<v.Columns(); j++)
			{
				V(i,j) *= float(4*dx*dx/(2*(cos(2*PI*i/(v.Rows()))+cos(2*PI*j/(v.Columns()))-2)));
			}
		}
		V(0,0) = 0;

		Matrix<float> poi;
		if(boundary == Neumann)
		{
			poi = IFFT2Cos(V);
		}
		else
		{
			//poi = IFFTSin(V);
		}
		return poi;
	}

	//Matrix<float> Poisson2D(Matrix<float>& v, float dx, BoundaryCondition boundary)
	//{

	//}

	Vector<float> FFTSin(Vector<float>& m)
	{
		int end = m.Numel()-1;
		Vector<float> mm(2*end);
		mm(0) = m(0);
		mm(end) = m(0);
		for(int i=1; i<end;i++)
		{
			mm(i) = m(i);
			mm(2*end-i) = -m(i);
		}
		Vector<ComplexFloat> MM = FFT(mm);
		
		Vector<float> M(end+1);
		M(0) = 0;
		M(end) = 0;
		for(int i=1; i<end;i++)
		{
			M(i) = -2*imag(MM(i));
		}
		return M;
	}
	
	Vector<float> IFFTSin(Vector<float>& M)
	{
		int end = M.Numel()-1;
		Vector<ComplexFloat> MM(2*end);
		MM(0) = 0;
		MM(end) = 0;
		for(int i=1; i<end;i++)
		{
			MM(i) = ComplexFloat(0, -M(i)/2);
			MM(2*end-i) = ComplexFloat(0, M(i)/2);
		}
		Vector<ComplexFloat> mm = IFFT(MM);
		
		Vector<float> m(end+1);
		m(0) = 0;
		m(end) = 0;
		for(int i=1; i<end;i++)
		{
			m(i) = real(mm(i));
		}
		return m;
	}

	Vector<float> FFTCos(Vector<float>& m)
	{
		int end = m.Numel()-1;
		Vector<float> mm(2*end);
		mm(0) = m(0);
		mm(end) = m(end);
		for(int i=1; i<end;i++)
		{
			mm(i) = m(i);
			mm(2*end-i) = m(i);
		}
		Vector<ComplexFloat> MM = FFT(mm);
		
		Vector<float> M(end+1);
		M(0) = real(MM(0));
		M(end) = real(MM(end));
		for(int i=1; i<end;i++)
		{
			M(i) = 2*real(MM(i));
		}
		return M;
	}
	
	Vector<float> IFFTCos(Vector<float>& M)
	{
		int end = M.Numel()-1;
		Vector<ComplexFloat> MM(2*end);
		MM(0) = M(0);
		MM(end) = M(end);
		for(int i=1; i<end;i++)
		{
			MM(i) = M(i)/2;
			MM(2*end-i) = M(i)/2;
		}
		Vector<ComplexFloat> mm = IFFT(MM);
		
		Vector<float> m(end+1);
		m(0) = real(mm(0));
		m(end) = real(mm(end));
		for(int i=1; i<end;i++)
		{
			m(i) = real(mm(i));
		}
		return m;
	}


	Matrix<float> FFT2Cos(Matrix<float>& m)
	{
		int endR = m.Rows()-1;
		int endC = m.Columns()-1;
		Matrix<float> mm = Matrix<float>::Cat(1, (m , FlipLRI(m.Slice(0,endR,1,endC-1))), (FlipUDI(m.Slice(1,endR-1,0,endC)), FlipUDI(FlipLRI(m.Slice(1,endR-1,1,endC-1)))) );

		Matrix<ComplexFloat> MM = FFT2(ToComplexFloat(mm));
		
		Matrix<float> M(m.Rows(), m.Columns());
		for(int i=1; i<endR; i++)
		{
			for(int j=1; j<endC; j++)
			{
				M(i,j) = 4*real(MM(i,j));
			}
		}
		for(int i=1; i<endR; i++)
		{
			M(i,0) = 2*real(MM(i,0));
			M(i,endC) = 2*real(MM(i,endC));
		}
		for(int i=1; i<endC; i++)
		{
			M(0,i) = 2*real(MM(0,i));
			M(endR,i) = 2*real(MM(endR,i));
		}
		M(0,0) = real(MM(0,0));
		M(0,endC) = real(MM(0,endC));
		M(endR,0) = real(MM(endR,0));
		M(endR,endC) = real(MM(endR,endC));

		return M;
	}
	
	Matrix<float> IFFT2Cos(Matrix<float>& M)
	{
		int endR = M.Rows()-1;
		int endC = M.Columns()-1;

		Matrix<float> MM(M.Rows(),M.Columns());
		for(int i=1; i<endR;i++)
		{
			for(int j=1; j<endC;j++)
			{
				MM(i,j) = M(i,j)/4;
			}
		}
		for(int i=1; i<endR; i++)
		{
			MM(i,0) = M(i,0)/2;
			MM(i,endC) = M(i,endC)/2;
		}
		for(int i=1; i<endC; i++)
		{
			MM(0,i) = M(0,i)/2;
			MM(endR,i) = M(endR,i)/2;
		}
		MM(0,0) = M(0,0);
		MM(0,endC) = M(0,endC);
		MM(endR,0) = M(endR,0);
		MM(endR,endC) = M(endR,endC);

		MM = Matrix<float>::Cat(1, (MM , FlipLRI(MM.Slice(0,endR,1,endC-1))), (FlipUDI(MM.Slice(1,endR-1,0,endC)), FlipUDI(FlipLRI(MM.Slice(1,endR-1,1,endC-1)))) );

		Matrix<float> mm = Real(IFFT2(ToComplexFloat(MM)));
		return mm.Slice(0,endR,0,endC);
	}



};





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩a在线播放| 午夜久久久久久久久| 亚洲第一激情av| 国产一区二区三区四| 欧美视频在线一区二区三区| 精品国产青草久久久久福利| 亚洲精品日日夜夜| 国产精品乡下勾搭老头1| 欧美日韩亚洲综合一区二区三区| 国产午夜久久久久| 日韩国产精品大片| 在线观看亚洲a| 国产精品久久久久久一区二区三区| 日av在线不卡| 欧美男生操女生| 亚洲黄色av一区| 成人免费高清在线| 久久日韩粉嫩一区二区三区| 日本免费新一区视频| 欧美性受xxxx| 亚洲乱码一区二区三区在线观看| 粉嫩av一区二区三区在线播放 | 日韩亚洲欧美综合| 亚洲狠狠爱一区二区三区| av电影天堂一区二区在线观看| 日韩一区二区中文字幕| 五月综合激情日本mⅴ| 91浏览器入口在线观看| 国产精品久久久久久久久果冻传媒 | 国产精品久久久久久一区二区三区| 丝袜亚洲精品中文字幕一区| 在线观看亚洲精品| 一区二区久久久久久| 色吊一区二区三区| 亚洲综合一二三区| 欧美四级电影在线观看| 亚洲制服欧美中文字幕中文字幕| 色妞www精品视频| 一区二区三区四区不卡在线| 在线区一区二视频| 亚洲小说春色综合另类电影| 欧美日韩国产一级| 免费在线看成人av| 欧美精品一区二区三区蜜桃 | 91精品国产综合久久久久久久久久| 亚洲一区二区在线播放相泽| 欧美午夜宅男影院| 日韩有码一区二区三区| 欧美成人乱码一区二区三区| 激情五月播播久久久精品| 国产三级精品三级在线专区| www.日韩在线| 亚洲国产日韩综合久久精品| 欧美精品色综合| 国产尤物一区二区| 精品人在线二区三区| 蜜桃视频在线一区| 国产精品久久久久一区二区三区 | 亚洲欧美自拍偷拍| 欧美三区在线视频| 国模娜娜一区二区三区| 中文字幕日韩精品一区| 欧美亚洲一区二区在线| 久久机这里只有精品| 国产香蕉久久精品综合网| 91亚洲永久精品| 男女激情视频一区| 中文字幕电影一区| 欧美日韩一区在线观看| 久久99久久99| 一区二区三区欧美亚洲| 日韩美女视频在线| 99精品国产91久久久久久| 日韩经典中文字幕一区| 国产精品欧美一区喷水| 欧美区在线观看| 懂色av中文字幕一区二区三区 | 国产精品视频在线看| 欧美日韩成人综合天天影院| 国产999精品久久久久久绿帽| 亚洲国产人成综合网站| 国内外成人在线| 日本一区二区三区久久久久久久久不| 风间由美中文字幕在线看视频国产欧美 | 麻豆一区二区99久久久久| 国产欧美1区2区3区| 欧美性猛交xxxx黑人交| 国产成人精品影视| 奇米四色…亚洲| 又紧又大又爽精品一区二区| 精品久久人人做人人爽| 欧美视频一区二| 成人激情黄色小说| 狠狠色综合播放一区二区| 亚洲国产视频a| 中文字幕一区二区三中文字幕| 91精品国产91久久久久久最新毛片| eeuss影院一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 国产日本欧美一区二区| 欧美一区二区三级| 欧美视频三区在线播放| 91麻豆文化传媒在线观看| 免费成人av资源网| 婷婷丁香久久五月婷婷| 亚洲与欧洲av电影| 亚洲乱码国产乱码精品精98午夜| 国产欧美日韩综合| 国产欧美一区二区精品忘忧草| 精品国产一二三区| 日韩你懂的在线观看| 日韩一级大片在线观看| 欧美三级电影在线看| 欧美午夜精品一区二区蜜桃| 色狠狠色噜噜噜综合网| 99精品视频在线观看免费| 成人av中文字幕| av福利精品导航| 97精品国产97久久久久久久久久久久| 国产成人精品免费在线| 国产999精品久久| 国产91在线看| 成人h动漫精品一区二区| 成人黄色在线视频| 国产欧美一区二区精品性色超碰| 欧美自拍丝袜亚洲| 91福利在线看| 欧美日本国产一区| 日韩一区二区三区电影在线观看| 91精品国产黑色紧身裤美女| 91精品啪在线观看国产60岁| 欧美一区二区视频在线观看2022| 欧美一级片在线观看| 欧美成人三级电影在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日韩一区二区三区免费看 | 3d动漫精品啪啪一区二区竹菊| 欧美福利电影网| 日韩欧美国产电影| 国产视频911| 亚洲女女做受ⅹxx高潮| 亚洲成在线观看| 久久精品久久久精品美女| 99re视频这里只有精品| 色婷婷久久久综合中文字幕| 欧美日韩国产一区| 精品久久久久一区| 亚洲欧洲综合另类| 琪琪久久久久日韩精品| 国产毛片精品视频| 欧美手机在线视频| 国产日韩精品一区| 亚洲va欧美va人人爽午夜| 狠狠久久亚洲欧美| 欧美性大战xxxxx久久久| 精品国产一区二区精华| 一区二区视频免费在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产1区2区3区精品美女| 欧美日韩的一区二区| 国产欧美精品一区二区色综合| 一级做a爱片久久| 国产精品99久久久久久久vr| 欧美色大人视频| 国产精品午夜春色av| 日韩av电影免费观看高清完整版| 丁香网亚洲国际| 日韩欧美黄色影院| 一区二区三区日本| 国产成人免费视频精品含羞草妖精 | 欧美午夜精品一区二区三区| 国产日韩欧美精品在线| 日韩有码一区二区三区| 91视频免费观看| 久久久久国产免费免费| 婷婷夜色潮精品综合在线| 成人av中文字幕| 久久色成人在线| 美女一区二区久久| 欧美日韩国产不卡| 一区二区三区在线播放| 国产精品88av| 久久综合国产精品| 免费精品视频在线| 欧美人伦禁忌dvd放荡欲情| 亚洲欧洲韩国日本视频| 国产成人免费视频一区| 精品国产一区久久| 免费看欧美美女黄的网站| 欧美精品久久99久久在免费线 | 国产在线精品一区二区三区不卡| 欧美日韩激情一区| 久久久久久久久99精品| 日本最新不卡在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 视频一区国产视频| 欧美色爱综合网| 午夜精品久久久久| 欧美怡红院视频| 亚洲电影一区二区|