Python opencv: извлечение цветового решателя кубика Rubik
Как получить ячейки сетки Sudoku с OpenCV? />


Это код, но он в Java, если опубликованное решение находится в Python, который в порядке, так как довольно легко преобразовать между.
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
boolean writeFile = true;
// Mat src =
// Imgcodecs.imread("C:\\Users\\thorf\\Documents\\JavaWS\\openCVtest\\src\\openCVtest\\linesinput.png");
Mat src = Imgcodecs.imread("C:\\Users\\thorf\\Documents\\JavaWS\\openCVtest\\src\\openCVtest\\chessboard.png");
Mat grey = new Mat();
Size size = new Size(3, 3);
double[][] sharpenKernel = { { -1, -1, -1 }, { -1, 9, -1 }, { -1, -1, -1 } };
Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, size);
Imgproc.cvtColor(src, grey, Imgproc.COLOR_BGR2GRAY);
Mat threshed = new Mat();
Imgproc.threshold(grey, threshed, 200, 255, Imgproc.THRESH_OTSU);
Imgcodecs.imwrite("threshed.png", threshed);
showWaitDestroy("threshed", threshed);
Mat blur = new Mat();
Imgproc.medianBlur(threshed, blur, 5);
Imgcodecs.imwrite("blur.png", blur);
showWaitDestroy("blur", blur);
Mat edges = new Mat();
Imgproc.Canny(blur, edges, 50, 400);
Imgcodecs.imwrite("edges.png", edges);
showWaitDestroy("edges", edges);
Mat inv = new Mat();
Core.bitwise_not(edges, inv);
Imgcodecs.imwrite("inv.png", inv);
showWaitDestroy("inv", inv);
processROIs(inv, src);
< /code>
Как можно увидеть только определенные квадраты, часто те, которые являются белыми и имеют в них кусочки, однако это не всегда так. Впервые используя CV, поэтому любая справка оценена. Это может быть на другой границе и т. Д., что мешает мне найти внешние границы.
Подробнее здесь: https://stackoverflow.com/questions/683 ... re-squares