Эти вопросы следуют this one, у меня есть изображение, которое я хочу удалить из него, я подорвал изображение до тех пор, пока весь небольшой текст не исчезнет, и останется только логотип , теперь у меня есть два изображения, исходное изображение и одно с логотипом, теперь, когда я пытаюсь вычесть два изображения, чтобы сформировать третий, он содержит только текст, что-то странное, логотип не удаляется но это описаностранная проблема при вычитании двух изображений
код:
cv::Mat final;
cv::Mat greyMat = [self.imageView.image CVGrayscaleMat];
cv::Mat bwMat,erodedMat;
cv::threshold(greyMat, bwMat, 128, 255, CV_THRESH_BINARY);
cv::bitwise_not(bwMat, bwMat);
cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(20, 12));
cv::erode(bwMat, erodedMat, element);
cv::dilate(bwMat, erodedMat, bwMat);//I used this to restore all the missed components of the logo during erosion,bwMat in the last argument acts as a mask, i didn't sure of this
std::vector<cv::Point>points;
cv::Mat_<uchar>::iterator it=bwMat.begin<uchar>();
cv::Mat_<uchar>::iterator end=bwMat.end<uchar>();
for (; it!=end; ++it)
if (*it)
points.push_back(it.pos());
final=bwMat-erodedMat;
Что на ваш вопрос именно? –
Пожалуйста, не отправляйте большие изображения напрямую. сжимать или изменять размер перед загрузкой. Трудно просматривать низкоскоростные соединения. –