opencv image encodeing returns array, instead of buffer












0














I am having a problem with converting encoded image to string. I encode as below:



image = cv2.imread(imagePath)
_, buffer = cv2.imencode('.png', image)


When I try to call, buffer.toString(), I get the following error:



AttributeError: 'numpy.ndarray' object has no attribute 'toString'


There are many questions on stackoverflow related to the same functionality that I am doing(Encoding with opencv). The following are few, which has contradicting answers.




  1. https://stackoverflow.com/a/25592959/7621143


In this answer, it is implied that imencode returns a tuple, with 2 elements:



>>> img_str = cv2.imencode('.jpg', img)[1].tostring()
>>> type(img_str)
'str'



  1. https://stackoverflow.com/a/17970817/7621143


Another answer to the same question, implies that the result is one value.



Anyway, in my case, the return value is a tuple with 2 elements, where the 2nd one is an ndarray, which doesn't have toString() method.



FWIW,



$ pip show opencv-python
Name: opencv-python
Version: 3.4.3.18
$ pip show numpy
Name: numpy
Version: 1.15.4


OpenCV documentation for imencode says, the return value is a tuple with 2 elements & the 2nd one is buffer.



Python: cv2.imencode(ext, img[, params]) → retval, buf


Any suggestions are appreciative, to resolve this issue.










share|improve this question





























    0














    I am having a problem with converting encoded image to string. I encode as below:



    image = cv2.imread(imagePath)
    _, buffer = cv2.imencode('.png', image)


    When I try to call, buffer.toString(), I get the following error:



    AttributeError: 'numpy.ndarray' object has no attribute 'toString'


    There are many questions on stackoverflow related to the same functionality that I am doing(Encoding with opencv). The following are few, which has contradicting answers.




    1. https://stackoverflow.com/a/25592959/7621143


    In this answer, it is implied that imencode returns a tuple, with 2 elements:



    >>> img_str = cv2.imencode('.jpg', img)[1].tostring()
    >>> type(img_str)
    'str'



    1. https://stackoverflow.com/a/17970817/7621143


    Another answer to the same question, implies that the result is one value.



    Anyway, in my case, the return value is a tuple with 2 elements, where the 2nd one is an ndarray, which doesn't have toString() method.



    FWIW,



    $ pip show opencv-python
    Name: opencv-python
    Version: 3.4.3.18
    $ pip show numpy
    Name: numpy
    Version: 1.15.4


    OpenCV documentation for imencode says, the return value is a tuple with 2 elements & the 2nd one is buffer.



    Python: cv2.imencode(ext, img[, params]) → retval, buf


    Any suggestions are appreciative, to resolve this issue.










    share|improve this question



























      0












      0








      0







      I am having a problem with converting encoded image to string. I encode as below:



      image = cv2.imread(imagePath)
      _, buffer = cv2.imencode('.png', image)


      When I try to call, buffer.toString(), I get the following error:



      AttributeError: 'numpy.ndarray' object has no attribute 'toString'


      There are many questions on stackoverflow related to the same functionality that I am doing(Encoding with opencv). The following are few, which has contradicting answers.




      1. https://stackoverflow.com/a/25592959/7621143


      In this answer, it is implied that imencode returns a tuple, with 2 elements:



      >>> img_str = cv2.imencode('.jpg', img)[1].tostring()
      >>> type(img_str)
      'str'



      1. https://stackoverflow.com/a/17970817/7621143


      Another answer to the same question, implies that the result is one value.



      Anyway, in my case, the return value is a tuple with 2 elements, where the 2nd one is an ndarray, which doesn't have toString() method.



      FWIW,



      $ pip show opencv-python
      Name: opencv-python
      Version: 3.4.3.18
      $ pip show numpy
      Name: numpy
      Version: 1.15.4


      OpenCV documentation for imencode says, the return value is a tuple with 2 elements & the 2nd one is buffer.



      Python: cv2.imencode(ext, img[, params]) → retval, buf


      Any suggestions are appreciative, to resolve this issue.










      share|improve this question















      I am having a problem with converting encoded image to string. I encode as below:



      image = cv2.imread(imagePath)
      _, buffer = cv2.imencode('.png', image)


      When I try to call, buffer.toString(), I get the following error:



      AttributeError: 'numpy.ndarray' object has no attribute 'toString'


      There are many questions on stackoverflow related to the same functionality that I am doing(Encoding with opencv). The following are few, which has contradicting answers.




      1. https://stackoverflow.com/a/25592959/7621143


      In this answer, it is implied that imencode returns a tuple, with 2 elements:



      >>> img_str = cv2.imencode('.jpg', img)[1].tostring()
      >>> type(img_str)
      'str'



      1. https://stackoverflow.com/a/17970817/7621143


      Another answer to the same question, implies that the result is one value.



      Anyway, in my case, the return value is a tuple with 2 elements, where the 2nd one is an ndarray, which doesn't have toString() method.



      FWIW,



      $ pip show opencv-python
      Name: opencv-python
      Version: 3.4.3.18
      $ pip show numpy
      Name: numpy
      Version: 1.15.4


      OpenCV documentation for imencode says, the return value is a tuple with 2 elements & the 2nd one is buffer.



      Python: cv2.imencode(ext, img[, params]) → retval, buf


      Any suggestions are appreciative, to resolve this issue.







      python numpy opencv






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 23 '18 at 7:05









      petezurich

      3,50581734




      3,50581734










      asked Nov 23 '18 at 6:34









      explorer

      498411




      498411
























          1 Answer
          1






          active

          oldest

          votes


















          2














          The error clearly says:




          AttributeError: 'numpy.ndarray' object has no attribute 'toString'




          which means that you have mis-spelled the method. Replace toString with tostring to get the desired results.






          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',
            autoActivateHeartbeat: false,
            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
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53441660%2fopencv-image-encodeing-returns-array-instead-of-buffer%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            The error clearly says:




            AttributeError: 'numpy.ndarray' object has no attribute 'toString'




            which means that you have mis-spelled the method. Replace toString with tostring to get the desired results.






            share|improve this answer


























              2














              The error clearly says:




              AttributeError: 'numpy.ndarray' object has no attribute 'toString'




              which means that you have mis-spelled the method. Replace toString with tostring to get the desired results.






              share|improve this answer
























                2












                2








                2






                The error clearly says:




                AttributeError: 'numpy.ndarray' object has no attribute 'toString'




                which means that you have mis-spelled the method. Replace toString with tostring to get the desired results.






                share|improve this answer












                The error clearly says:




                AttributeError: 'numpy.ndarray' object has no attribute 'toString'




                which means that you have mis-spelled the method. Replace toString with tostring to get the desired results.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 23 '18 at 6:52









                ZdaR

                13k33453




                13k33453






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53441660%2fopencv-image-encodeing-returns-array-instead-of-buffer%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    What visual should I use to simply compare current year value vs last year in Power BI desktop

                    How to ignore python UserWarning in pytest?

                    Alexandru Averescu