+ System.out.println("color: " + getPixel(ListPosition.BOTTOM, 0));
+ }
+
+ private void model1(Mat src, int interpolation) {
+ Mat resized = new Mat();
+ Imgproc.resize(src, resized, new Size(config.leds.cols, config.leds.rows), 0, 0, interpolation);
+ }
+
+ private void model2(Mat src, int interpolation) {
+ Mat resized = new Mat();
+ Imgproc.resize(src, resized, new Size(16, 9), 0, 0, interpolation);
+ }
+
+ private void model3(Mat src, int interpolation) {
+ colImage = new Mat();
+ rowImage = new Mat();
+ Imgproc.resize(src, colImage, new Size(config.leds.cols, 9), 0, 0, interpolation);
+ Imgproc.resize(src, rowImage, new Size(16, config.leds.rows), 0, 0, interpolation);
+ }
+
+ public Color getPixel(ListPosition listPosition, int xy) {
+ switch (listPosition) {
+ case LEFT:
+ return pixelToColor(rowImage, 0, xy);
+ case RIGHT:
+ return pixelToColor(rowImage, config.leds.cols - 1, xy);
+ case TOP:
+ return pixelToColor(colImage, xy, 0);
+ case BOTTOM:
+ return pixelToColor(colImage, xy, config.leds.cols - 1);
+ }
+ return null;
+ }
+
+ private Color pixelToColor(Mat image, int x, int y) {
+ byte[] rgb = new byte[3];
+ image.get(y, x, rgb);
+ System.out.println("r = " + rgb[0] + ", g = " + rgb[1] + ", b = " + rgb[2]);
+ return new Color(rgb[0], rgb[1], rgb[2]);