3 /* current processing image related */
8 /* current processing image related */
16 public IYLM(int counter,
20 this.m_counter = counter;
21 this.m_rows = this.m_rows_r = rows;
22 this.m_cols = this.m_cols_r = cols;
24 this.m_result = new float[rows * cols];
27 public int getRows() {
31 public int getCols() {
35 public float[] getImage() {
39 public int getRowsR() {
43 public int getColsR() {
47 public float[] getResult() {
51 public boolean addCalcSobelResult(IYL iyl) {
52 int startRow = iyl.getRowsRS();
53 int endRow = iyl.getRowsRE();
57 image = this.m_result;
64 for(i = startRow; i < endRow; i++) {
65 for(j = 0; j < cols; j++) {
66 image[i * cols + j] = r[k * cols + j];
71 return (0 == this.m_counter);
74 public void calcSobel_dY() {
75 int rows_k1, cols_k1, rows_k2, cols_k2;
76 int[] kernel_1, kernel_2;
78 int kernelSize, startCol, endCol, halfKernel, startRow, endRow;
79 int k, i, j, kernelSum_1, kernelSum_2;
80 float[] result, image;
81 int rows = this.m_rows_r;
82 int cols = this.m_cols_r;
84 // level 1 is the base image.
86 image = this.m_result;
90 kernel_1 = new int[rows_k1 * cols_k1];
93 kernel_2 = new int[rows_k2 * cols_k2];
108 startCol = 1; //(kernelSize/2);
109 endCol = cols - 1; //(int)(cols - (kernelSize/2));
110 halfKernel = 1; //(kernelSize-1)/2;
112 startRow = 1; //(kernelSize)/2;
113 endRow = (rows-1); //(rows - (kernelSize)/2);
115 for(i=startRow; i<endRow; i++) {
116 for(j=startCol; j<endCol; j++) {
118 for(k=-halfKernel; k<=halfKernel; k++) {
119 temp += (float)(image[(i+k) * cols + j]
120 * (float)(kernel_1[k+halfKernel]));
122 image[i * cols + j] = (float)(temp/kernelSum_1);
123 image[i * cols + j] = (float)(image[i * cols + j] + 128);
128 public void printImage() {
130 for(int i=0; i<this.m_rows; i++) {
131 for(int j=0; j<this.m_cols; j++) {
132 System.printI((int)(this.m_image[i * this.m_cols + j]*10));
137 public void printResult() {
139 for(int i=0; i<this.m_rows_r; i++) {
140 for(int j=0; j<this.m_cols_r; j++) {
141 System.printI((int)(this.m_result[i * this.m_cols_r + j]*10));