0

MatlabなどではなくJavaコードのみを使用して、画像(手、静脈)の分岐点と尾根の終点を見つける方法はありますか? JavaのImageJライブラリでこれを達成できますか?

4

3 に答える 3

1

指紋画像からの特徴点抽出にある科学的説明。一部のアルゴリズムはOpenCVに実装されており、セグメンテーションのセクションを参照してください。

OpenCVライブラリは、JNIを使​​用してJavaにリンクできます。

于 2013-01-23T06:35:22.600 に答える
1

これを行うのに役立つ ImageJ プラグインがあります。

AnalyzeSkeleton (ソースはこちらを参照)

SkeletonResultそのクラスの助けを借りて、分岐点と終点を抽出できます。

于 2013-01-23T08:25:08.760 に答える
0

AnalyzeSkeleton を実行して、IJ を使用した SekeletonResult Response で結果を得ました。このために、私は IJ.run(imp, "Skeletonize", ""); を使用しました。

 // Initialize AnalyzeSkeleton_
  AnalyzeSkeleton_ skel = new AnalyzeSkeleton_();
 skel.calculateShortestPath = true;
 skel.setup("", imp);

 // Perform analysis in silent mode
 // (work on a copy of the ImagePlus if you don't want it displayed)
 // run(int pruneIndex, boolean pruneEnds, boolean shortPath, ImagePlus origIP, boolean silent, boolean verbose)
 SkeletonResult skelResult = skel.run(AnalyzeSkeleton_.NONE, false, true, null, true, false);

 // Read the results
 Object shortestPaths[] = skelResult.getShortestPathList().toArray();
 double branchLengths[] = skelResult.getAverageBranchLength();
 int branchNumbers[] = skelResult.getBranches();

 long totalLength = 0;
 for (int i = 0; i < branchNumbers.length; i++) {
     totalLength += branchNumbers[i] * branchLengths[i];
 }

 double cumulativeLengthOfShortestPaths = 0;
 for (int i = 0; i < shortestPaths.length; i++) {
     cumulativeLengthOfShortestPaths +=(Double)shortestPaths[i];
 }
  System.out.println("totalLength "+totalLength);
  System.out.println("cumulativeLengthOfShortestPaths "+cumulativeLengthOfShortestPaths);
System.out.println("getNumOfTrees "+skelResult.getNumOfTrees());
System.out.println("getAverageBranchLength "+skelResult.getAverageBranchLength().length);
System.out.println("getBranches "+skelResult.getBranches().length);
System.out.println("getEndPoints "+skelResult.getEndPoints().length);
System.out.println("getGraph "+skelResult.getGraph().length);
System.out.println("getJunctions "+skelResult.getJunctions().length);
System.out.println("getJunctionVoxels "+skelResult.getJunctionVoxels().length);
System.out.println("getListOfEndPoints "+skelResult.getListOfEndPoints().size());
System.out.println("getListOfJunctionVoxels "+skelResult.getListOfJunctionVoxels().size());
System.out.println("getMaximumBranchLength "+skelResult.getMaximumBranchLength().length);
System.out.println("getNumberOfVoxels "+skelResult.getNumberOfVoxels().length);
System.out.println("getQuadruples "+skelResult.getQuadruples().length); this method .but I am not able to find which method in Skeleton Result class returns bifuraction point could you please help me little more thanks Amar
于 2013-01-31T05:52:45.693 に答える