How to crop image based on contents (Python & OpenCV)?











up vote
0
down vote

favorite












well currently I'm working on a personal project which is the identification of products in a scanned image taken from store catalog.



example,



As you may see in the image there's no lines separation between products, so using 'Hough lines' to locate the products won't really solve the problem!



Using Tesseract is really amazing to extract the image content, the only problem that I'm facing is finding the image products automatically, I mean not cropping the image manually but I want to detect the products, cropping them with their text description and price and then extract content using OCR.



I have tried many image processing techniques but still nothing (I'm using Python and OpenCV).
Thanks in advance :)










share|improve this question









New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • P.S. You should add a few more details regarding what you already tried.
    – Florian Echtler
    Nov 8 at 9:50















up vote
0
down vote

favorite












well currently I'm working on a personal project which is the identification of products in a scanned image taken from store catalog.



example,



As you may see in the image there's no lines separation between products, so using 'Hough lines' to locate the products won't really solve the problem!



Using Tesseract is really amazing to extract the image content, the only problem that I'm facing is finding the image products automatically, I mean not cropping the image manually but I want to detect the products, cropping them with their text description and price and then extract content using OCR.



I have tried many image processing techniques but still nothing (I'm using Python and OpenCV).
Thanks in advance :)










share|improve this question









New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • P.S. You should add a few more details regarding what you already tried.
    – Florian Echtler
    Nov 8 at 9:50













up vote
0
down vote

favorite









up vote
0
down vote

favorite











well currently I'm working on a personal project which is the identification of products in a scanned image taken from store catalog.



example,



As you may see in the image there's no lines separation between products, so using 'Hough lines' to locate the products won't really solve the problem!



Using Tesseract is really amazing to extract the image content, the only problem that I'm facing is finding the image products automatically, I mean not cropping the image manually but I want to detect the products, cropping them with their text description and price and then extract content using OCR.



I have tried many image processing techniques but still nothing (I'm using Python and OpenCV).
Thanks in advance :)










share|improve this question









New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











well currently I'm working on a personal project which is the identification of products in a scanned image taken from store catalog.



example,



As you may see in the image there's no lines separation between products, so using 'Hough lines' to locate the products won't really solve the problem!



Using Tesseract is really amazing to extract the image content, the only problem that I'm facing is finding the image products automatically, I mean not cropping the image manually but I want to detect the products, cropping them with their text description and price and then extract content using OCR.



I have tried many image processing techniques but still nothing (I'm using Python and OpenCV).
Thanks in advance :)







python opencv image-processing ocr






share|improve this question









New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Nov 8 at 9:30









api55

6,23332442




6,23332442






New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 8 at 9:23









Capito

1




1




New contributor




Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Capito is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • P.S. You should add a few more details regarding what you already tried.
    – Florian Echtler
    Nov 8 at 9:50


















  • P.S. You should add a few more details regarding what you already tried.
    – Florian Echtler
    Nov 8 at 9:50
















P.S. You should add a few more details regarding what you already tried.
– Florian Echtler
Nov 8 at 9:50




P.S. You should add a few more details regarding what you already tried.
– Florian Echtler
Nov 8 at 9:50












1 Answer
1






active

oldest

votes

















up vote
0
down vote













The problem you have is usually called background removal, or alternatively foreground extraction. In this example, it might actually be relatively easy, as the background is mostly in shades of the same color - my recommendation would be to look at the GrabCut algorithm which is described here: https://docs.opencv.org/3.4.3/d8/d83/tutorial_py_grabcut.html






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    Capito is a new contributor. Be nice, and check out our Code of Conduct.










     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204735%2fhow-to-crop-image-based-on-contents-python-opencv%23new-answer', 'question_page');
    }
    );

    Post as a guest
































    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    The problem you have is usually called background removal, or alternatively foreground extraction. In this example, it might actually be relatively easy, as the background is mostly in shades of the same color - my recommendation would be to look at the GrabCut algorithm which is described here: https://docs.opencv.org/3.4.3/d8/d83/tutorial_py_grabcut.html






    share|improve this answer

























      up vote
      0
      down vote













      The problem you have is usually called background removal, or alternatively foreground extraction. In this example, it might actually be relatively easy, as the background is mostly in shades of the same color - my recommendation would be to look at the GrabCut algorithm which is described here: https://docs.opencv.org/3.4.3/d8/d83/tutorial_py_grabcut.html






      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        The problem you have is usually called background removal, or alternatively foreground extraction. In this example, it might actually be relatively easy, as the background is mostly in shades of the same color - my recommendation would be to look at the GrabCut algorithm which is described here: https://docs.opencv.org/3.4.3/d8/d83/tutorial_py_grabcut.html






        share|improve this answer












        The problem you have is usually called background removal, or alternatively foreground extraction. In this example, it might actually be relatively easy, as the background is mostly in shades of the same color - my recommendation would be to look at the GrabCut algorithm which is described here: https://docs.opencv.org/3.4.3/d8/d83/tutorial_py_grabcut.html







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 8 at 9:49









        Florian Echtler

        396214




        396214






















            Capito is a new contributor. Be nice, and check out our Code of Conduct.










             

            draft saved


            draft discarded


















            Capito is a new contributor. Be nice, and check out our Code of Conduct.













            Capito is a new contributor. Be nice, and check out our Code of Conduct.












            Capito is a new contributor. Be nice, and check out our Code of Conduct.















             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204735%2fhow-to-crop-image-based-on-contents-python-opencv%23new-answer', 'question_page');
            }
            );

            Post as a guest




















































































            Popular posts from this blog

            Guess what letter conforming each word

            Port of Spain

            Run scheduled task as local user group (not BUILTIN)