In my project, I am try to detect a handwritten character. How to find borders of image based on pixel colour and crop image. I wrote some code but it perfectly crops only at top left side written character. It cannot work proper for all images. My code is
for (int x = 0; x < bt.getWidth(); x++) {
for (int y = 0; y < bt.getHeight(); y++) {
if (bt.getPixel(x, y) == Color.BLACK) {
if (xmin == 0 && xmax==0)
xmin = x;
if (ymin == 0 && ymax==0)
ymin = y;
if (x > xmax && x>xmin) {
xmax = x;
}
if (x < xmin && x < xmax) {
xmin = x;
}
if (y > ymax && y>ymin) {
ymax = y;
}
if (y < ymin && y < ymax) {
ymin = y;
}
// Log.i("pix bef","" + xmin + " " + ymin + " " + xmax + " " + ymax);
if((xmin+xmax)>bt.getWidth()){
xmax=bt.getWidth()-xmin;
}
if((ymin+ymax)>bt.getHeight()){
ymax=bt.getHeight()-ymin;
}
}
}
}
Rect roi = new Rect(xmin, ymin, xmax, ymax);
Mat cr = new Mat(mm, roi);
The output is accurate at top left only. Getting much weight space at top right. Please solve how to eliminate extra weight space. Thank you.