【发布时间】:2016-07-21 21:53:15
【问题描述】:
首先,对不起我的英语..
我是 OpenCV 的新手,正在尝试删除图像中的徽标。我在这个网站上找到了这个答案 --> How to use OpenCV to remove non text areas from a business card?
我按照步骤编写这些代码:
int main(int argc,char** argv) {
Mat eroded,dilated,img1=imread("C:\\Users\\Buket\\Desktop\\Belgeler\\Oda Kayıt Belgesi\\OKB001.jpg");
int erosion_size = 6;
Mat elementd = getStructuringElement(MORPH_CROSS,
Size(2 * erosion_size + 1, 2 * erosion_size + 1),
Point(erosion_size, erosion_size) );
int dilation_size = 1;
Mat elemente = getStructuringElement(MORPH_CROSS,
Size(2 * dilation_size + 1, 2 * dilation_size + 1),
Point(dilation_size, dilation_size) );
Mat mask = Mat::zeros(img1.rows, img1.cols, CV_8UC1);
dilate(img1, dilated, elementd);
Mat lastimg;
int count =0;
do{
lastimg = dilated;
erode(dilated, lastimg, elemente);
max(lastimg,img1);
count++;
}while(count < 2);
现在我有一个图像,上面只是标志:
这是源图片:
在文章中,有这样一句话:“您现在有一张只有徽标且没有文字的图片,请使用此图片删除徽标”。 但我该怎么做?我研究了很多,但一无所获..
请帮忙..
编辑
Mat dest;
subtract(lastimg,img1,dest);
bitwise_not(dest,dest);
这个函数就是答案。
【问题讨论】:
标签: c++ opencv image-processing