From b817746eb61afaaad38fe1ee0c590ccf4d3f6da1 Mon Sep 17 00:00:00 2001
From: lidapeng <794757862@qq.com>
Date: Sun, 16 Aug 2020 20:45:08 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E7=BA=B9?=
=?UTF-8?q?=E7=90=86=E8=81=9A=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../org/wlld/MatrixTools/MatrixOperation.java | 1 +
src/main/java/org/wlld/config/Kernel.java | 2 +-
.../wlld/imageRecognition/Convolution.java | 91 ++++++++++---------
.../wlld/imageRecognition/MeanClustering.java | 4 +-
.../org/wlld/imageRecognition/Operation.java | 24 +++--
.../org/wlld/imageRecognition/RGBNorm.java | 14 +--
.../org/wlld/imageRecognition/border/Knn.java | 2 +-
.../segmentation/Watershed.java | 20 ++--
src/main/java/org/wlld/param/Food.java | 9 ++
src/test/java/coverTest/FoodTest.java | 55 +++++------
11 files changed, 112 insertions(+), 112 deletions(-)
diff --git a/pom.xml b/pom.xml
index b06b7c0..4fc633a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.wlld
easyAi
- 1.1.2
+ 1.0.9
easyAi
diff --git a/src/main/java/org/wlld/MatrixTools/MatrixOperation.java b/src/main/java/org/wlld/MatrixTools/MatrixOperation.java
index 27815a5..ec5f647 100644
--- a/src/main/java/org/wlld/MatrixTools/MatrixOperation.java
+++ b/src/main/java/org/wlld/MatrixTools/MatrixOperation.java
@@ -330,6 +330,7 @@ public class MatrixOperation {
mathMul(myMatrix, def);
return myMatrix;
} else {
+ System.out.println(matrixs.getString());
throw new Exception("this matrixs do not have InverseMatrixs");
}
}
diff --git a/src/main/java/org/wlld/config/Kernel.java b/src/main/java/org/wlld/config/Kernel.java
index 0cdde31..465295b 100644
--- a/src/main/java/org/wlld/config/Kernel.java
+++ b/src/main/java/org/wlld/config/Kernel.java
@@ -10,7 +10,7 @@ public class Kernel {
private static final String All_Number2 = "[-1,0,-1]#[0,4,0]#[-1,0,-1]#";
public static final int Region_Nub = 60;//一张图有多少份
public static final double th = 0.88;//分水岭灰度阈值
- public static final double rgbN = 442.0;//RGB范数归一化最大值
+ public static final double rgbN = 442.0;//442.0;//RGB范数归一化最大值
public static Matrix Vertical;
public static Matrix Horizontal;
public static Matrix All;
diff --git a/src/main/java/org/wlld/imageRecognition/Convolution.java b/src/main/java/org/wlld/imageRecognition/Convolution.java
index 1c64628..55ff4e8 100644
--- a/src/main/java/org/wlld/imageRecognition/Convolution.java
+++ b/src/main/java/org/wlld/imageRecognition/Convolution.java
@@ -169,9 +169,9 @@ public class Convolution extends Frequency {
Matrix matrixR = threeChannelMatrix.getMatrixR();
Matrix matrixG = threeChannelMatrix.getMatrixG();
Matrix matrixB = threeChannelMatrix.getMatrixB();
- matrixR = late(matrixR, poolSize);
- matrixG = late(matrixG, poolSize);
- matrixB = late(matrixB, poolSize);
+// matrixR = late(matrixR, poolSize);
+// matrixG = late(matrixG, poolSize);
+// matrixB = late(matrixB, poolSize);
RGBSort rgbSort = new RGBSort();
int x = matrixR.getX();
int y = matrixR.getY();
@@ -187,9 +187,9 @@ public class Convolution extends Frequency {
Collections.sort(rgbNorms, rgbSort);
List features = new ArrayList<>();
for (int i = 0; i < sqNub; i++) {
- //double[] rgb = rgbNorms.get(i).getRgb();
- RgbRegression rgbRegression = rgbNorms.get(i).getRgbRegression();
- double[] rgb = new double[]{rgbRegression.getWr(), rgbRegression.getWg(), rgbRegression.getB()};
+ double[] rgb = rgbNorms.get(i).getRgb();
+ // RgbRegression rgbRegression = rgbNorms.get(i).getRgbRegression();
+ //double[] rgb = new double[]{rgbRegression.getWr(), rgbRegression.getWg(), rgbRegression.getB()};
for (int j = 0; j < 3; j++) {
features.add(rgb[j]);
}
@@ -200,44 +200,45 @@ public class Convolution extends Frequency {
return features;
}
- private void regression(XYBody xyBody) {
- //计算当前图形的线性回归
- RegressionBody regressionBody = new RegressionBody();
- regressionBody.lineRegression(xyBody.getY(), xyBody.getX(), this);
- xyBody.setRegressionBody(regressionBody);
- }
-
- public XYBody imageTrance(Matrix matrix, int size) throws Exception {//矩阵和卷积核大小
- int xn = matrix.getX();
- int yn = matrix.getY();
- int xSize = xn / size;//求导后矩阵的行数
- int ySize = yn / size;//求导后矩阵的列数
- double[] Y = new double[xSize * ySize];
- double[] X = new double[xSize * ySize];
- double rgbN = Kernel.rgbN;
- for (int i = 0; i < xn - size; i += size) {
- for (int j = 0; j < yn - size; j += size) {
- Matrix matrix1 = matrix.getSonOfMatrix(i, j, size, size);
- double[] nubs = new double[size * size];//平均值数组
- for (int t = 0; t < size; t++) {
- for (int k = 0; k < size; k++) {
- double nub = matrix1.getNumber(t, k) / rgbN;
- nubs[t * size + k] = nub;
+ public List getCenterTexture(ThreeChannelMatrix threeChannelMatrix, int size, int poolSize, TempleConfig templeConfig
+ , int sqNub) throws Exception {
+ RGBSort rgbSort = new RGBSort();
+ MeanClustering meanClustering = new MeanClustering(sqNub, templeConfig);
+ Matrix matrixR = threeChannelMatrix.getMatrixR();
+ Matrix matrixG = threeChannelMatrix.getMatrixG();
+ Matrix matrixB = threeChannelMatrix.getMatrixB();
+ int xn = matrixR.getX();
+ int yn = matrixR.getY();
+ for (int i = 0; i <= xn - size; i += size) {
+ for (int j = 0; j <= yn - size; j += size) {
+ Matrix sonR = late(matrixR.getSonOfMatrix(i, j, size, size), poolSize);
+ Matrix sonG = late(matrixG.getSonOfMatrix(i, j, size, size), poolSize);
+ Matrix sonB = late(matrixB.getSonOfMatrix(i, j, size, size), poolSize);
+ int tSize = sonR.getX();
+ int kSize = sonR.getY();
+ double[] rgb = new double[tSize * kSize * 3];
+ for (int t = 0; t < tSize; t++) {
+ for (int k = 0; k < kSize; k++) {
+ int index = t * kSize + k;
+ rgb[index] = sonR.getNumber(t, k);
+ rgb[tSize * kSize + index] = sonG.getNumber(t, k);
+ rgb[tSize * kSize * 2 + index] = sonB.getNumber(t, k);
}
}
- double avg = average(nubs);//平均值
- //double dc = frequency.dcByAvg(nubs, avg);//当前离散系数
- double va = varianceByAve(nubs, avg);//方差
- //离散系数作为X,AVG作为Y
- int t = i / size * ySize + j / size;
- Y[t] = avg;
- X[t] = va;
+ meanClustering.setColor(rgb);
}
}
- XYBody xyBody = new XYBody();
- xyBody.setX(X);
- xyBody.setY(Y);
- return xyBody;
+ meanClustering.start();//开始聚类
+ List rgbNorms = meanClustering.getMatrices();
+ Collections.sort(rgbNorms, rgbSort);
+ List features = new ArrayList<>();
+ for (int i = 0; i < sqNub; i++) {
+ double[] rgb = rgbNorms.get(i).getRgb();
+ for (int j = 0; j < rgb.length; j++) {
+ features.add(rgb[j]);
+ }
+ }
+ return features;
}
@@ -260,11 +261,13 @@ public class Convolution extends Frequency {
Matrix matrixR = threeChannelMatrix.getMatrixR().getSonOfMatrix(x, y, xSize, ySize);
Matrix matrixG = threeChannelMatrix.getMatrixG().getSonOfMatrix(x, y, xSize, ySize);
Matrix matrixB = threeChannelMatrix.getMatrixB().getSonOfMatrix(x, y, xSize, ySize);
+ Matrix matrixH = threeChannelMatrix.getH().getSonOfMatrix(x, y, xSize, ySize);
+ Matrix matrixRGB = threeChannelMatrix.getMatrixRGB().getSonOfMatrix(x, y, xSize, ySize);
threeChannelMatrix1.setMatrixR(matrixR);
threeChannelMatrix1.setMatrixG(matrixG);
threeChannelMatrix1.setMatrixB(matrixB);
- threeChannelMatrix1.setH(threeChannelMatrix.getH());
- threeChannelMatrix1.setMatrixRGB(threeChannelMatrix.getMatrixRGB());
+ threeChannelMatrix1.setH(matrixH);
+ threeChannelMatrix1.setMatrixRGB(matrixRGB);
return threeChannelMatrix1;
}
@@ -359,7 +362,7 @@ public class Convolution extends Frequency {
return myMatrix;
}
- protected Matrix late(Matrix matrix, int size) throws Exception {//池化处理
+ public Matrix late(Matrix matrix, int size) throws Exception {//池化处理
int xn = matrix.getX();
int yn = matrix.getY();
int x = xn / size;//求导后矩阵的行数
@@ -380,7 +383,7 @@ public class Convolution extends Frequency {
}
}
}
- maxNub = ArithUtil.div(sigma, n);
+ maxNub = sigma / n;
//迟化的最大值是 MAXNUB
myMatrix.setNub(i / size, j / size, maxNub);
}
diff --git a/src/main/java/org/wlld/imageRecognition/MeanClustering.java b/src/main/java/org/wlld/imageRecognition/MeanClustering.java
index 321a346..721cfde 100644
--- a/src/main/java/org/wlld/imageRecognition/MeanClustering.java
+++ b/src/main/java/org/wlld/imageRecognition/MeanClustering.java
@@ -96,7 +96,7 @@ public class MeanClustering {
for (int i = 0; i < speciesQuantity; i++) {//初始化均值向量
int index = random.nextInt(matrixList.size());
double[] rgb = matrixList.get(index);
- RGBNorm rgbNorm = new RGBNorm(rgb);
+ RGBNorm rgbNorm = new RGBNorm(rgb, length);
//要进行深度克隆
matrices.add(rgbNorm);
}
@@ -111,7 +111,7 @@ public class MeanClustering {
break;
}
}
- startRegression();//开始进行回归
+ // startRegression();//开始进行回归
} else {
throw new Exception("matrixList number less than 2");
}
diff --git a/src/main/java/org/wlld/imageRecognition/Operation.java b/src/main/java/org/wlld/imageRecognition/Operation.java
index 8b0fd5d..f392299 100644
--- a/src/main/java/org/wlld/imageRecognition/Operation.java
+++ b/src/main/java/org/wlld/imageRecognition/Operation.java
@@ -7,7 +7,6 @@ import org.wlld.config.Classifier;
import org.wlld.config.StudyPattern;
import org.wlld.i.OutBack;
import org.wlld.imageRecognition.border.*;
-import org.wlld.imageRecognition.modelEntity.TrayBody;
import org.wlld.imageRecognition.segmentation.RegionBody;
import org.wlld.imageRecognition.segmentation.RgbRegression;
import org.wlld.imageRecognition.segmentation.Specifications;
@@ -64,10 +63,10 @@ public class Operation {//进行计算
Matrix matrixR = threeChannelMatrix.getMatrixR();
Matrix matrixG = threeChannelMatrix.getMatrixG();
Matrix matrixB = threeChannelMatrix.getMatrixB();
- Matrix matrixRGB = threeChannelMatrix.getMatrixRGB();
+ //Matrix matrixRGB = threeChannelMatrix.getMatrixRGB();
Random random = new Random();
- int x = matrixRGB.getX();
- int y = matrixRGB.getY();
+ int x = matrixR.getX();
+ int y = matrixR.getY();
int size = templeConfig.getFood().getRegressionNub();
RgbRegression rgbRegression = new RgbRegression(size);
for (int i = 0; i < size; i++) {
@@ -88,11 +87,9 @@ public class Operation {//进行计算
Matrix matrixR = threeChannelMatrix.getMatrixR();
Matrix matrixG = threeChannelMatrix.getMatrixG();
Matrix matrixB = threeChannelMatrix.getMatrixB();
- Matrix matrixRGB = threeChannelMatrix.getMatrixRGB();
threeChannelMatrix.setMatrixR(matrixR.getSonOfMatrix(x, y, xSize, ySize));
threeChannelMatrix.setMatrixG(matrixG.getSonOfMatrix(x, y, xSize, ySize));
threeChannelMatrix.setMatrixB(matrixB.getSonOfMatrix(x, y, xSize, ySize));
- threeChannelMatrix.setMatrixRGB(matrixRGB.getSonOfMatrix(x, y, xSize, ySize));
}
public RegionBody colorStudy(ThreeChannelMatrix threeChannelMatrix, int tag, List specificationsList) throws Exception {
@@ -107,15 +104,15 @@ public class Operation {//进行计算
int xSize = maxX - minX;
int ySize = maxY - minY;
ThreeChannelMatrix threeChannelMatrix1 = convolution.getRegionMatrix(threeChannelMatrix, minX, minY, xSize, ySize);
- //convolution.filtering(threeChannelMatrix1);//光照过滤
int times = templeConfig.getFood().getTimes();
for (int i = 0; i < times; i++) {
- List feature = convolution.getCenterColor(threeChannelMatrix1, templeConfig.getPoolSize(),
- templeConfig.getFeatureNub(), templeConfig);
+// List feature = convolution.getCenterColor(threeChannelMatrix1, templeConfig.getPoolSize(),
+// templeConfig.getFeatureNub(), templeConfig);
+ List feature = convolution.getCenterTexture(threeChannelMatrix1, templeConfig.getFood().getRegionSize(),
+ templeConfig.getPoolSize(), templeConfig, templeConfig.getFeatureNub());
if (templeConfig.isShowLog()) {
System.out.println(tag + ":" + feature);
}
- //System.out.println("=====================================");
int classifier = templeConfig.getClassifier();
switch (classifier) {
case Classifier.DNN:
@@ -177,9 +174,10 @@ public class Operation {//进行计算
int xSize = maxX - minX;
int ySize = maxY - minY;
ThreeChannelMatrix threeChannelMatrix1 = convolution.getRegionMatrix(threeChannelMatrix, minX, minY, xSize, ySize);
- //convolution.filtering(threeChannelMatrix1);//光照过滤
- List feature = convolution.getCenterColor(threeChannelMatrix1, templeConfig.getPoolSize(),
- templeConfig.getFeatureNub(), templeConfig);
+// List feature = convolution.getCenterColor(threeChannelMatrix1, templeConfig.getPoolSize(),
+// templeConfig.getFeatureNub(), templeConfig);
+ List feature = convolution.getCenterTexture(threeChannelMatrix1, templeConfig.getFood().getRegionSize(),
+ templeConfig.getPoolSize(), templeConfig, templeConfig.getFeatureNub());
if (templeConfig.isShowLog()) {
System.out.println(feature);
}
diff --git a/src/main/java/org/wlld/imageRecognition/RGBNorm.java b/src/main/java/org/wlld/imageRecognition/RGBNorm.java
index f67d74e..f7fe6e8 100644
--- a/src/main/java/org/wlld/imageRecognition/RGBNorm.java
+++ b/src/main/java/org/wlld/imageRecognition/RGBNorm.java
@@ -7,13 +7,14 @@ import java.util.ArrayList;
import java.util.List;
public class RGBNorm {
- private double[] rgbAll = new double[3];
+ private double[] rgbAll;
private double norm;
private int nub;
- private double[] rgb = new double[3];
+ private double[] rgb;
private double[] rgbUp;
private List rgbs = new ArrayList<>();
private RgbRegression rgbRegression;
+ private int len;
public List getRgbs() {
return rgbs;
@@ -27,7 +28,10 @@ public class RGBNorm {
this.rgbRegression = rgbRegression;
}
- RGBNorm(double[] rgb) {
+ RGBNorm(double[] rgb, int len) {
+ this.len = len;
+ rgbAll = new double[len];
+ this.rgb = new double[len];
this.rgbUp = rgb;
}
@@ -36,12 +40,11 @@ public class RGBNorm {
}
public void clear() {
- rgbAll = new double[3];
+ rgbAll = new double[len];
nub = 0;
for (int i = 0; i < rgb.length; i++) {
rgbUp[i] = rgb[i];
}
- rgbs.clear();
//System.out.println("clear==" + Arrays.toString(rgbUp));
}
@@ -76,7 +79,6 @@ public class RGBNorm {
for (int i = 0; i < rgb.length; i++) {
rgbAll[i] = rgbAll[i] + rgb[i];
}
- rgbs.add(rgb);
nub++;
}
diff --git a/src/main/java/org/wlld/imageRecognition/border/Knn.java b/src/main/java/org/wlld/imageRecognition/border/Knn.java
index a8702b0..68fa9a4 100644
--- a/src/main/java/org/wlld/imageRecognition/border/Knn.java
+++ b/src/main/java/org/wlld/imageRecognition/border/Knn.java
@@ -85,7 +85,7 @@ public class Knn {//KNN分类器
compare(dists, types, dist, type);
}
}
- System.out.println(Arrays.toString(types));
+ //System.out.println(Arrays.toString(types));
Map map = new HashMap<>();
for (int i = 0; i < nub; i++) {
int type = types[i];
diff --git a/src/main/java/org/wlld/imageRecognition/segmentation/Watershed.java b/src/main/java/org/wlld/imageRecognition/segmentation/Watershed.java
index aa49826..92e1794 100644
--- a/src/main/java/org/wlld/imageRecognition/segmentation/Watershed.java
+++ b/src/main/java/org/wlld/imageRecognition/segmentation/Watershed.java
@@ -277,13 +277,13 @@ public class Watershed {
regionBodies.add(regionBody);
}
}
- for (RegionBody regionBody : regionBodies) {
- int minX = regionBody.getMinX();
- int maxX = regionBody.getMaxX();
- int minY = regionBody.getMinY();
- int maxY = regionBody.getMaxY();
- System.out.println("minX==" + minX + ",minY==" + minY + ",maxX==" + maxX + ",maxY==" + maxY);
- }
+// for (RegionBody regionBody : regionBodies) {
+// int minX = regionBody.getMinX();
+// int maxX = regionBody.getMaxX();
+// int minY = regionBody.getMinY();
+// int maxY = regionBody.getMaxY();
+// System.out.println("minX==" + minX + ",minY==" + minY + ",maxX==" + maxX + ",maxY==" + maxY);
+// }
return regionBodies;
}
@@ -399,8 +399,8 @@ public class Watershed {
}
private void sigmaPixel() throws Exception {//生成降雨密度图
- int x = matrix.getX();
- int y = matrix.getY();
+// int x = matrix.getX();
+// int y = matrix.getY();
int size = xSize * ySize;
for (int i = 0; i < xSize * regionNub; i += xSize) {
for (int j = 0; j < ySize * regionNub; j += ySize) {
@@ -429,7 +429,7 @@ public class Watershed {
int minIdx = 0;
for (int i = 0; i < array.length; i++) {
double nub = array[i];
- if (nub > -1 && nub < mySelf - rainTh && nub < maxRain) {
+ if (nub > -1 && nub < mySelf) {
minIdx = minIdx | (1 << i);
}
}
diff --git a/src/main/java/org/wlld/param/Food.java b/src/main/java/org/wlld/param/Food.java
index d2a4869..6453e9c 100644
--- a/src/main/java/org/wlld/param/Food.java
+++ b/src/main/java/org/wlld/param/Food.java
@@ -19,6 +19,15 @@ public class Food {
private List trayBody = new ArrayList<>();//托盘实体参数
private int regressionNub = 10000;//回归次数
private double trayTh = 0.1;//托盘回归阈值
+ private int regionSize = 10;//纹理区域大小
+
+ public int getRegionSize() {
+ return regionSize;
+ }
+
+ public void setRegionSize(int regionSize) {
+ this.regionSize = regionSize;
+ }
public double getTrayTh() {
return trayTh;
diff --git a/src/test/java/coverTest/FoodTest.java b/src/test/java/coverTest/FoodTest.java
index 4826cd6..cf2ea69 100644
--- a/src/test/java/coverTest/FoodTest.java
+++ b/src/test/java/coverTest/FoodTest.java
@@ -16,35 +16,15 @@ import org.wlld.param.Food;
import org.wlld.tools.ArithUtil;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
public class FoodTest {
public static void main(String[] args) throws Exception {
-// ModelParameter parameter = JSON.parseObject(ModelData.DATA, ModelParameter.class);
-// if (parameter.getKnnVector() != null) {
-// System.out.println("空的");
-// } else {
-// System.out.println("不是空===");
-// }
test();
}
- public static void one(double[] test, double[] right, double[] wrong) {
- int nub = 0;
- for (int i = 0; i < test.length; i++) {
- double test1 = test[i];
- double right1 = right[i];
- double wrong1 = wrong[i];
- double sub1 = Math.abs(ArithUtil.sub(test1, right1));
- double sub2 = Math.abs(ArithUtil.sub(test1, wrong1));
- if (sub1 > sub2) {
- nub++;
- }
- }
- System.out.println(nub);
- }
-
public static void test2(TempleConfig templeConfig) throws Exception {
if (templeConfig == null) {
ModelParameter parameter = JSON.parseObject(ModelData.DATA, ModelParameter.class);
@@ -53,22 +33,24 @@ public class FoodTest {
Picture picture = new Picture();
List specificationsList = new ArrayList<>();
Specifications specifications = new Specifications();
- specifications.setMinWidth(300);
- specifications.setMinHeight(300);
+ specifications.setMinWidth(100);
+ specifications.setMinHeight(100);
specifications.setMaxWidth(950);
specifications.setMaxHeight(950);
specificationsList.add(specifications);
Operation operation = new Operation(templeConfig);
- for (int i = 1; i <= 28; i++) {
- ThreeChannelMatrix threeChannelMatrix1 = picture.getThreeMatrix("/Users/lidapeng/Desktop/foodModel/test1/g" + i + ".jpg");
+ long a = System.currentTimeMillis();
+ for (int i = 1; i <= 1; i++) {
+ ThreeChannelMatrix threeChannelMatrix1 = picture.getThreeMatrix("/Users/lidapeng/Desktop/test/d.jpg");
List regionBody = operation.colorLook(threeChannelMatrix1, specificationsList);
+ long b = System.currentTimeMillis() - a;
+ System.out.println(b);
for (int j = 0; j < regionBody.size(); j++) {
RegionBody regionBody1 = regionBody.get(j);
System.out.println("minX==" + regionBody1.getMinX() + ",minY==" + regionBody1.getMinY()
+ ",maxX==" + regionBody1.getMaxX() + ",maxY==" + regionBody1.getMaxY());
- System.out.println(regionBody.get(j).getType());
+ System.out.println("type==" + regionBody.get(j).getType());
}
- System.out.println("===================================" + i);
}
}
@@ -87,10 +69,10 @@ public class FoodTest {
//池化比例
templeConfig.setPoolSize(2);//缩小比例
//聚类
- templeConfig.setFeatureNub(3);//聚类特征数量
+ templeConfig.setFeatureNub(5);//聚类特征数量
//菜品识别实体类
food.setShrink(20);//缩紧像素
- food.setTimes(1);//聚类数据增强
+ food.setTimes(2);//聚类数据增强
food.setRowMark(0.1);//0.12
food.setColumnMark(0.1);//0.25
food.setRegressionNub(20000);
@@ -109,21 +91,26 @@ public class FoodTest {
Operation operation = new Operation(templeConfig);
List specificationsList = new ArrayList<>();
Specifications specifications = new Specifications();
- specifications.setMinWidth(300);
- specifications.setMinHeight(300);
+ specifications.setMinWidth(100);
+ specifications.setMinHeight(100);
specifications.setMaxWidth(1000);
specifications.setMaxHeight(1000);
specificationsList.add(specifications);
ThreeChannelMatrix threeChannelMatrix = picture.getThreeMatrix("/Users/lidapeng/Desktop/myDocument/d.jpg");
operation.setTray(threeChannelMatrix);
for (int i = 1; i <= 1; i++) {
- ThreeChannelMatrix threeChannelMatrix1 = picture.getThreeMatrix("/Users/lidapeng/Desktop/myDocument/m.jpg");
+ ThreeChannelMatrix threeChannelMatrix1 = picture.getThreeMatrix("/Users/lidapeng/Desktop/test/a1.jpg");
+ ThreeChannelMatrix threeChannelMatrix2 = picture.getThreeMatrix("/Users/lidapeng/Desktop/test/b.jpg");
+ ThreeChannelMatrix threeChannelMatrix3 = picture.getThreeMatrix("/Users/lidapeng/Desktop/test/c.jpg");
operation.colorStudy(threeChannelMatrix1, 1, specificationsList);
- // System.out.println("=======================================" + i);
+ operation.colorStudy(threeChannelMatrix2, 2, specificationsList);
+ operation.colorStudy(threeChannelMatrix3, 3, specificationsList);
+
}
+
// minX==301,minY==430,maxX==854,maxY==920
// minX==497,minY==1090,maxX==994,maxY==1520
- // test2(templeConfig);
+ test2(templeConfig);
}
public static void study() throws Exception {