Mình đang cần crop ảnh chứa số ra thành các ảnh riêng với các chữ số, có cùng kích thước. AI từng làm xử lý ảnh rồi giúp mình với
Mình sử dụng opencv Click vào hình ảnh để lấy hình ảnh lớn

Tên:		56177061_1303469553152276_3070944854075768832_n.jpg
Lần xem:	0
Size:		165.8 KB
ID:		67431
đây là đoạn code của mình, nhưng mình lấy biên toàn ra 1 ảnh thôi

{
Mat image = imread("D:\\COMPLITE\\ImageCut\\img20.jpg", CV_LOAD_IMAGE_COLOR);
Mat gray;
cvtColor(image, gray, CV_BGR2GRAY);
GaussianBlur(gray, gray, Size(3, 3), 0, 0);
imshow("anh gray", gray);
Mat binary;
adaptiveThreshold(gray, binary, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 61, 31);
imshow("nhi phan", binary);
Mat morpho;
Mat element = getStructuringElement(MORPH_CROSS, Size(3, 3), Point(1, 1));
//erode(binary, morpho, element, Point(-1, -1), 1);
//imshow("anh gian no", morpho);

erode(gray, morpho, getStructuringElement(MORPH_CROSS, Size(3, 3), Point(1, 1)));
imshow("anh gian no", morpho);

Mat a;
dilate(gray, a, getStructuringElement(MORPH_CROSS, Size(3, 3), Point(1, 1)));
imshow("anh xoa", a);

vector<vector<Point>> countours;
vector<Mat> nA;
int x = 0;
findContours(morpho, countours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);
for (size_t i = 0; i < countours.size(); i++)
{
Rect r = boundingRect(countours[i]);
if (r.height > 0.5*image.rows && r.height <image.rows)
{
Mat n = Mat(morpho, r);
cout << r.x << endl;
nA.push_back(n);
x++;
rectangle(image, r, Scalar(0, 0, 255), 2, 8, 0);
}

}

imshow("Anh Goc", image);

//L?u hình b?ng imwwrite
int j;
for (j = 0; j < x; j++)
{
resize(nA[j], nA[j], Size(40, 40));
imshow("hinh", nA[j]);
char name[13];
sprintf(name, "%d.jpg", j);
imwrite(name, nA[j]);
}
waitKey();
getchar();
}

- - - Nội dung đã được cập nhật ngày 09-04-2019 lúc 02:16 PM - - -

Giờ làm sao để có thể tách số 0 ra 1 ảnh số 5 ra 1 ảnh. cảm ơn m.n