小编Ahm*_*mzy的帖子

使用opencv从图像中删除水印

首先,我有这个图像,我想制作一个应用程序,可以检测像它的图像,并从中删除圆(水印).

图像有水印

int main(){
    Mat im1,im2,im3,gray,gray2,result;

    im2=imread(" (2).jpg");
    namedWindow("x",CV_WINDOW_FREERATIO);
    imshow("x",im2);

    //converting it to gray
    cvtColor(im2,gray,CV_BGR2GRAY);
    // creating a new image that will have the cropped ellipse
    Mat ElipseImg(im2.rows,im2.cols,CV_8UC1,Scalar(0,0,0));

    //detecting the largest circle
    GaussianBlur(gray,gray,Size(5,5),0);
    vector<Vec3f> circles;
    HoughCircles(gray,circles,CV_HOUGH_GRADIENT,1,gray.rows/8,100,100,100,0);

    uchar x;
    int measure=0;int id=0;
    for(int i=0;i<circles.size();i++){
        if(cvRound(circles[i][2])>measure && cvRound(circles[i][2])<1000){
            measure=cvRound(circles[i][2]);
            id=i;
        }
    }


    Point center(cvRound(circles[id][0]),cvRound(circles[id][1]));
    int radius=cvRound(circles[id][2]);
    circle(im2,center,3,Scalar(0,255,0),-1,8,0);
    circle(im2,center,radius,Scalar(0,255,0),2,8,0);
    ellipse(ElipseImg,center,Size(radius,radius),0,0,360,Scalar(255,255,255),-1,8);
    cout<<"center: "<<center<<" radius: "<<radius<<endl;



    Mat res;
    bitwise_and(gray,ElipseImg,result);
    namedWindow("bitwise and",CV_WINDOW_FREERATIO);
    imshow("bitwise and",result);

    // trying to estimate the Intensity  of the circle for the thresholding
    x=result.at<uchar>(cvRound(circles[id][0]+30),cvRound(circles[id][1])); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv watermark image-processing

51
推荐指数
2
解决办法
1万
查看次数

如何使用代码块在 C++ 中编写阿拉伯字符串?

有人能告诉我如何用 C++ 写一个阿拉伯字符串吗??,我正在使用代码块。

我在互联网上搜索了所有内容以查看如何将阿拉伯字符串放入 C++ 代码中,但我什么也没找到

c++ codeblocks arabic

0
推荐指数
1
解决办法
3613
查看次数

标签 统计

c++ ×2

arabic ×1

codeblocks ×1

image-processing ×1

opencv ×1

watermark ×1