OSDN Git Service

HornSchunck反復回数のbreakの仕掛け
authorakyg5327 <enokida.yuya827@mail.kyutech.jp>
Sun, 7 Jan 2024 16:25:35 +0000 (01:25 +0900)
committerakyg5327 <enokida.yuya827@mail.kyutech.jp>
Sun, 7 Jan 2024 16:25:35 +0000 (01:25 +0900)
14 files changed:
src/Tools/Config/Define.inc
src/Tools/mrcImage/mrcImageHornSchunck/src/mrcImageHornSchunck.c
src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHA [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHALINUX5 [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/ALPHAOSF1 [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/ARM64MAC64 [deleted symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/CELLLINUX64 [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/HP [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/I386LINUX [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/I686LINUX [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/SGI [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/SPARC [new symlink]
src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64 [new symlink]

index a9e3774..64446e7 100644 (file)
@@ -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
+
index eaeb7b6..f3227dc 100755 (executable)
@@ -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 (symlink)
index 0000000..1ad23aa
--- /dev/null
@@ -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 (symlink)
index 0000000..0b926d5
--- /dev/null
@@ -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 (symlink)
index 0000000..79c1bad
--- /dev/null
@@ -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 (symlink)
index 0000000..23d2c93
--- /dev/null
@@ -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 (symlink)
index 9816069..0000000
+++ /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 (symlink)
index 0000000..e705b37
--- /dev/null
@@ -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 (symlink)
index 0000000..69a2342
--- /dev/null
@@ -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 (symlink)
index 0000000..31fa390
--- /dev/null
@@ -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 (symlink)
index 0000000..49de392
--- /dev/null
@@ -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 (symlink)
index 0000000..105f7cf
--- /dev/null
@@ -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 (symlink)
index 0000000..4d662c7
--- /dev/null
@@ -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 (symlink)
index 0000000..3ed4e17
--- /dev/null
@@ -0,0 +1 @@
+../../../../../hostdepend/X86MAC64/src/Tools/mrcImage/mrcImageMovingModelCreate/src/X86MAC64
\ No newline at end of file