Skip to content
This repository was archived by the owner on Dec 7, 2020. It is now read-only.

Commit 433adc7

Browse files
author
Severi Haverila
committed
minor refactoring
1 parent 2b4af66 commit 433adc7

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

src/main/java/library/AkazeImageFinder.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,18 @@
2323
public class AkazeImageFinder {
2424

2525
private static final Logger logger = LoggerFactory.getLogger(AkazeImageFinder.class);
26-
public double scene_height;
27-
public double scene_width;
28-
double lastResizeFactor;
26+
double lastResizeFactor; //TODO Severi remove this
2927

30-
public double getSceneHeight() {
28+
public double getSceneHeight(String sceneFile) {
29+
Mat img_scene = Highgui.imread(sceneFile, Highgui.CV_LOAD_IMAGE_UNCHANGED);
30+
double scene_height = img_scene.rows();
3131
return scene_height;
3232
}
3333

34-
public double getSceneWidth() {
35-
return scene_width;
34+
public double getSceneWidth(String sceneFile) {
35+
Mat img_scene = Highgui.imread(sceneFile, Highgui.CV_LOAD_IMAGE_UNCHANGED);
36+
double scene_width = img_scene.cols();
37+
return scene_width;
3638
}
3739

3840
public Point[] findImage(String queryImageFile, String sceneFile, double tolerance) {
@@ -41,9 +43,9 @@ public Point[] findImage(String queryImageFile, String sceneFile, double toleran
4143
Mat img_object = Highgui.imread(queryImageFile, Highgui.CV_LOAD_IMAGE_UNCHANGED);
4244
Mat img_scene = Highgui.imread(sceneFile, Highgui.CV_LOAD_IMAGE_UNCHANGED);
4345

44-
Mat resized_img_scene = new Mat();
45-
scene_height = img_scene.rows();
46-
scene_width = img_scene.cols();
46+
47+
double scene_height = img_scene.rows();
48+
double scene_width = img_scene.cols();
4749
//logger.info("Scene height and width: " + scene_height + ", " + scene_width);
4850

4951
double resizeFactor = 1;
@@ -53,6 +55,7 @@ public Point[] findImage(String queryImageFile, String sceneFile, double toleran
5355
resizeFactor = scene_height / 750;
5456

5557
if (resizeFactor > 1) {
58+
Mat resized_img_scene = new Mat();
5659
Size size = new Size(scene_width / resizeFactor, scene_height / resizeFactor);
5760
resize(img_scene, resized_img_scene, size);
5861
Highgui.imwrite(sceneFile, resized_img_scene);

src/main/java/library/ImageRecognition.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static Point[] findImage(String image, String scene, ImageRecognitionSett
4141

4242
if (imgRect != null) {
4343
if (platformName.equalsIgnoreCase("iOS")) {
44-
imgRect = scaleImageRectangleForIos(screenSize, imgRect);
44+
imgRect = scaleImageRectangleForIos(screenSize, imgRect, scene);
4545
}
4646
Point center = imgRect[4];
4747
if (!isPointInsideScreenBounds(center, screenSize)) {
@@ -67,11 +67,11 @@ private static Point[] findImageUsingAkaze(String image, String scene, ImageReco
6767

6868

6969

70-
private static Point[] scaleImageRectangleForIos(Dimension screenSize, Point[] imgRect) {
70+
private static Point[] scaleImageRectangleForIos(Dimension screenSize, Point[] imgRect, String scene) {
7171
Point[] imgRectScaled;
7272
//for retina devices we need to recalculate coordinates
73-
double sceneHeight = imageFinder.getSceneHeight();
74-
double sceneWidth = imageFinder.getSceneWidth();
73+
double sceneHeight = imageFinder.getSceneHeight(scene);
74+
double sceneWidth = imageFinder.getSceneWidth(scene);
7575

7676
int screenHeight = screenSize.getHeight();
7777
int screenWidth = screenSize.getWidth();

0 commit comments

Comments
 (0)