void erode_color(const cv::Mat& src, cv::Mat& dst, int iterations = 1){
cv::Mat mask(src.rows, src.cols, CV_8UC1);
cv::Mat element = cv::Mat::ones(3, 3, CV_8UC1);
for(int i=0; i<mask.rows; i++){
for(int j=0; j<mask.cols; j++){
if(src.at<cv::Vec4b>(i, j)[3] == 0 || i == 0 || j == 0 || i == src.rows - 1 || j == src.cols - 1){
mask.at<uchar>(i, j) = 0;
}else{
mask.at<uchar>(i, j) = 255;
}
}
}
cv::erode(mask, mask, element, cv::Point(-1, -1), iterations);
dst = src.clone();
for(int i=0; i<dst.rows; i++){
for(int j=0; j<dst.cols; j++){
if(mask.at<uchar>(i, j) == 0){
dst.at<cv::Vec4b>(i, j)[3] = 0;
}else{
dst.at<cv::Vec4b>(i, j)[3] = 255;
}
}
}
}