From: akyg5327 Date: Sun, 7 Jan 2024 16:25:35 +0000 (+0900) Subject: HornSchunck反復回数のbreakの仕掛け X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=1e3d5aaad7fd70e9fb01a68c17a5a9b7608b6f44;p=eos%2Fbase.git HornSchunck反復回数のbreakの仕掛け --- diff --git a/src/Tools/Config/Define.inc b/src/Tools/Config/Define.inc index a9e3774391..64446e7d51 100644 --- a/src/Tools/Config/Define.inc +++ b/src/Tools/Config/Define.inc @@ -33,7 +33,6 @@ WORLDNAME=Tools WORLDNAME=Tools WORLDNAME=Tools WORLDNAME=Tools -<<<<<<< HEAD WORLDNAME=Tools WORLDNAME=Tools WORLDNAME=Tools @@ -62,5 +61,4 @@ WORLDNAME=Tools WORLDNAME=Tools WORLDNAME=Tools WORLDNAME=Tools -======= ->>>>>>> a5fac4c3be12f7d1c3c220e0c26890b05f28d35f + diff --git a/src/Tools/mrcImage/mrcImageHornSchunck/src/mrcImageHornSchunck.c b/src/Tools/mrcImage/mrcImageHornSchunck/src/mrcImageHornSchunck.c index eaeb7b6e84..f3227dcbe7 100755 --- a/src/Tools/mrcImage/mrcImageHornSchunck/src/mrcImageHornSchunck.c +++ b/src/Tools/mrcImage/mrcImageHornSchunck/src/mrcImageHornSchunck.c @@ -129,13 +129,15 @@ int main(int argc, char* argv[]) //u,v,wの平均値の格納場所 double u_ave, v_ave, w_ave; - + u_ave = v_ave = w_ave = 0; + //オプティカルフローの一回前の値の一時的な格納場所 - //double size_before = 0; + double size_before = 0; //収束を見るためのもの - //double conv = 0; - + double conv = 0; + double density = 0; + double I = 0; //最終的に求めたいもの double u, v, w; u = v = w = 0; @@ -143,7 +145,7 @@ int main(int argc, char* argv[]) //Horn-Schunck法の3D拡張 int l; float x, y, z; - double size; + double size = 0; // inputfileがある場合勾配の計算をする(Ix,Iy,Iz,Itの) for (x = 1; x < in1.HeaderN.x - 1; x++) { @@ -273,13 +275,21 @@ int main(int argc, char* argv[]) //u = u_ave - (Ix * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / ((1 / info.ALPHA) + Ix * Ix + Iy * Iy + Iz * Iz); //v = v_ave - (Iy * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / ((1 / info.ALPHA) + Ix * Ix + Iy * Iy + Iz * Iz); //w = w_ave - (Iz * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / ((1 / info.ALPHA) + Ix * Ix + Iy * Iy + Iz * Iz); - + + //1つ前の速度 + size_before = size; + u = u_ave - (Ix * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / (info.ALPHA * info.ALPHA + Ix * Ix + Iy * Iy + Iz * Iz); v = v_ave - (Iy * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / (info.ALPHA * info.ALPHA + Ix * Ix + Iy * Iy + Iz * Iz); w = w_ave - (Iz * (Ix * u_ave + Iy * v_ave + Iz * w_ave + It)) / (info.ALPHA * info.ALPHA + Ix * Ix + Iy * Iy + Iz * Iz); size = sqrt(u*u + v*v + w*w); + //breakのための差異計算 + mrcPixelDataGet(&in1, x , y , z , &I, mrcPixelRePart, mrcPixelHowNearest); + conv = conv + fabs( (size - size_before) * I ); + density = density + I; + //オプティカルフロー の差を出してどのぐらい収束するのか知るために... if(info.flagSize1) { if(l == 0){ @@ -322,6 +332,8 @@ int main(int argc, char* argv[]) } } printf("反復数%d回目\n", l); + if(conv/density < 0.0001) + break; } diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHA b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHA new file mode 120000 index 0000000000..1ad23aa741 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHA @@ -0,0 +1 @@ +../../../../../hostdepend/ALPHA/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHA \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX new file mode 120000 index 0000000000..0b926d5655 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX @@ -0,0 +1 @@ +../../../../../hostdepend/ALPHALINUX/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX5 b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX5 new file mode 120000 index 0000000000..79c1badfbe --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX5 @@ -0,0 +1 @@ +../../../../../hostdepend/ALPHALINUX5/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX5 \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHAOSF1 b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHAOSF1 new file mode 120000 index 0000000000..23d2c93887 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHAOSF1 @@ -0,0 +1 @@ +../../../../../hostdepend/ALPHAOSF1/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHAOSF1 \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ARM64MAC64 b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ARM64MAC64 deleted file mode 120000 index 98160694f8..0000000000 --- a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ARM64MAC64 +++ /dev/null @@ -1 +0,0 @@ -../../../../../hostdepend/ARM64MAC64/src/Tools/mrcImage/mrcImageMovingModelCreate/src/ARM64MAC64 \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/CELLLINUX64 b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/CELLLINUX64 new file mode 120000 index 0000000000..e705b37083 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/CELLLINUX64 @@ -0,0 +1 @@ +../../../../../hostdepend/CELLLINUX64/src/Tools/mrcImage/mrcImageMovingModelCreate/src/CELLLINUX64 \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/HP b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/HP new file mode 120000 index 0000000000..69a2342d46 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/HP @@ -0,0 +1 @@ +../../../../../hostdepend/HP/src/Tools/mrcImage/mrcImageMovingModelCreate/src/HP \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I386LINUX b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I386LINUX new file mode 120000 index 0000000000..31fa390a2e --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I386LINUX @@ -0,0 +1 @@ +../../../../../hostdepend/I386LINUX/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I386LINUX \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I686LINUX b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I686LINUX new file mode 120000 index 0000000000..49de39218e --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I686LINUX @@ -0,0 +1 @@ +../../../../../hostdepend/I686LINUX/src/Tools/mrcImage/mrcImageMovingModelCreate/src/I686LINUX \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SGI b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SGI new file mode 120000 index 0000000000..105f7cfad6 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SGI @@ -0,0 +1 @@ +../../../../../hostdepend/SGI/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SGI \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SPARC b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SPARC new file mode 120000 index 0000000000..4d662c7834 --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SPARC @@ -0,0 +1 @@ +../../../../../hostdepend/SPARC/src/Tools/mrcImage/mrcImageMovingModelCreate/src/SPARC \ No newline at end of file diff --git a/src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64 b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64 new file mode 120000 index 0000000000..3ed4e1774b --- /dev/null +++ b/src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64 @@ -0,0 +1 @@ +../../../../../hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64 \ No newline at end of file