Why does imshow display non-integer x and y values for the pixel position?












-1














I am trying to read the x and y positions of the pixels in images. This is an example of what is shown when I run:



plt.figure(1)
plt.imshow(img)
plt.title('image')
plt.show()


Why are they non-integer values? My best guess is that some scaling is occurring? I am running python on spyder as an IDE.



Edit: Here is the image:
enter image description here



Edit 2: Upon closer inspection, inspecting pixel by pixel, they appear to be at the .5 marks rather than 0 to 1 as well. And here is a screenshot of my axis settings... something is definitely funky here. Anybody have an idea why?
enter image description hereenter image description here










share|improve this question
























  • Sharing the image would help
    – mk18
    Dec 27 '18 at 21:11






  • 1




    @mk18 i have added the image
    – Daniel Luci
    Dec 28 '18 at 5:10






  • 1




    I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
    – Jack
    Dec 28 '18 at 5:20










  • @Jack i updated with more photos
    – Daniel Luci
    Dec 28 '18 at 5:54
















-1














I am trying to read the x and y positions of the pixels in images. This is an example of what is shown when I run:



plt.figure(1)
plt.imshow(img)
plt.title('image')
plt.show()


Why are they non-integer values? My best guess is that some scaling is occurring? I am running python on spyder as an IDE.



Edit: Here is the image:
enter image description here



Edit 2: Upon closer inspection, inspecting pixel by pixel, they appear to be at the .5 marks rather than 0 to 1 as well. And here is a screenshot of my axis settings... something is definitely funky here. Anybody have an idea why?
enter image description hereenter image description here










share|improve this question
























  • Sharing the image would help
    – mk18
    Dec 27 '18 at 21:11






  • 1




    @mk18 i have added the image
    – Daniel Luci
    Dec 28 '18 at 5:10






  • 1




    I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
    – Jack
    Dec 28 '18 at 5:20










  • @Jack i updated with more photos
    – Daniel Luci
    Dec 28 '18 at 5:54














-1












-1








-1







I am trying to read the x and y positions of the pixels in images. This is an example of what is shown when I run:



plt.figure(1)
plt.imshow(img)
plt.title('image')
plt.show()


Why are they non-integer values? My best guess is that some scaling is occurring? I am running python on spyder as an IDE.



Edit: Here is the image:
enter image description here



Edit 2: Upon closer inspection, inspecting pixel by pixel, they appear to be at the .5 marks rather than 0 to 1 as well. And here is a screenshot of my axis settings... something is definitely funky here. Anybody have an idea why?
enter image description hereenter image description here










share|improve this question















I am trying to read the x and y positions of the pixels in images. This is an example of what is shown when I run:



plt.figure(1)
plt.imshow(img)
plt.title('image')
plt.show()


Why are they non-integer values? My best guess is that some scaling is occurring? I am running python on spyder as an IDE.



Edit: Here is the image:
enter image description here



Edit 2: Upon closer inspection, inspecting pixel by pixel, they appear to be at the .5 marks rather than 0 to 1 as well. And here is a screenshot of my axis settings... something is definitely funky here. Anybody have an idea why?
enter image description hereenter image description here







python matplotlib imshow






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 28 '18 at 5:53







Daniel Luci

















asked Dec 27 '18 at 14:29









Daniel LuciDaniel Luci

404




404












  • Sharing the image would help
    – mk18
    Dec 27 '18 at 21:11






  • 1




    @mk18 i have added the image
    – Daniel Luci
    Dec 28 '18 at 5:10






  • 1




    I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
    – Jack
    Dec 28 '18 at 5:20










  • @Jack i updated with more photos
    – Daniel Luci
    Dec 28 '18 at 5:54


















  • Sharing the image would help
    – mk18
    Dec 27 '18 at 21:11






  • 1




    @mk18 i have added the image
    – Daniel Luci
    Dec 28 '18 at 5:10






  • 1




    I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
    – Jack
    Dec 28 '18 at 5:20










  • @Jack i updated with more photos
    – Daniel Luci
    Dec 28 '18 at 5:54
















Sharing the image would help
– mk18
Dec 27 '18 at 21:11




Sharing the image would help
– mk18
Dec 27 '18 at 21:11




1




1




@mk18 i have added the image
– Daniel Luci
Dec 28 '18 at 5:10




@mk18 i have added the image
– Daniel Luci
Dec 28 '18 at 5:10




1




1




I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
– Jack
Dec 28 '18 at 5:20




I believe it's because the plot is continuous, so while the pixels do have a size of 1 the sub-pixel region itself also has measurable space.
– Jack
Dec 28 '18 at 5:20












@Jack i updated with more photos
– Daniel Luci
Dec 28 '18 at 5:54




@Jack i updated with more photos
– Daniel Luci
Dec 28 '18 at 5:54












1 Answer
1






active

oldest

votes


















0














My guess is, that the float values you worry about while hovering over the shown image with your mouse is just the mouse pointer position, which does not have to be integer. Yet still lays within a pixel (squared integer area) and thus gives you information about the channels at that pixel's position.



Another way to get information about your pixels in a more controlled way is given here:



Here is my working code snippet printing the pixel colours from an image:



import os, sys
import Image

im = Image.open("image.jpg")
x = 3
y = 4

pix = im.load()
print pix[x,y]


Answer edit 2: It just makes sense like that. The pixel centers fall on the integer values .0 you expect the pixels to have. If the edges would fall on the .0 a direct mapping between pixel coordinates and pixel values would not be possible within the visualization. Also the pixel having a height and width of 1 is exactly what we would expect.






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%2f53946640%2fwhy-does-imshow-display-non-integer-x-and-y-values-for-the-pixel-position%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









    0














    My guess is, that the float values you worry about while hovering over the shown image with your mouse is just the mouse pointer position, which does not have to be integer. Yet still lays within a pixel (squared integer area) and thus gives you information about the channels at that pixel's position.



    Another way to get information about your pixels in a more controlled way is given here:



    Here is my working code snippet printing the pixel colours from an image:



    import os, sys
    import Image

    im = Image.open("image.jpg")
    x = 3
    y = 4

    pix = im.load()
    print pix[x,y]


    Answer edit 2: It just makes sense like that. The pixel centers fall on the integer values .0 you expect the pixels to have. If the edges would fall on the .0 a direct mapping between pixel coordinates and pixel values would not be possible within the visualization. Also the pixel having a height and width of 1 is exactly what we would expect.






    share|improve this answer




























      0














      My guess is, that the float values you worry about while hovering over the shown image with your mouse is just the mouse pointer position, which does not have to be integer. Yet still lays within a pixel (squared integer area) and thus gives you information about the channels at that pixel's position.



      Another way to get information about your pixels in a more controlled way is given here:



      Here is my working code snippet printing the pixel colours from an image:



      import os, sys
      import Image

      im = Image.open("image.jpg")
      x = 3
      y = 4

      pix = im.load()
      print pix[x,y]


      Answer edit 2: It just makes sense like that. The pixel centers fall on the integer values .0 you expect the pixels to have. If the edges would fall on the .0 a direct mapping between pixel coordinates and pixel values would not be possible within the visualization. Also the pixel having a height and width of 1 is exactly what we would expect.






      share|improve this answer


























        0












        0








        0






        My guess is, that the float values you worry about while hovering over the shown image with your mouse is just the mouse pointer position, which does not have to be integer. Yet still lays within a pixel (squared integer area) and thus gives you information about the channels at that pixel's position.



        Another way to get information about your pixels in a more controlled way is given here:



        Here is my working code snippet printing the pixel colours from an image:



        import os, sys
        import Image

        im = Image.open("image.jpg")
        x = 3
        y = 4

        pix = im.load()
        print pix[x,y]


        Answer edit 2: It just makes sense like that. The pixel centers fall on the integer values .0 you expect the pixels to have. If the edges would fall on the .0 a direct mapping between pixel coordinates and pixel values would not be possible within the visualization. Also the pixel having a height and width of 1 is exactly what we would expect.






        share|improve this answer














        My guess is, that the float values you worry about while hovering over the shown image with your mouse is just the mouse pointer position, which does not have to be integer. Yet still lays within a pixel (squared integer area) and thus gives you information about the channels at that pixel's position.



        Another way to get information about your pixels in a more controlled way is given here:



        Here is my working code snippet printing the pixel colours from an image:



        import os, sys
        import Image

        im = Image.open("image.jpg")
        x = 3
        y = 4

        pix = im.load()
        print pix[x,y]


        Answer edit 2: It just makes sense like that. The pixel centers fall on the integer values .0 you expect the pixels to have. If the edges would fall on the .0 a direct mapping between pixel coordinates and pixel values would not be possible within the visualization. Also the pixel having a height and width of 1 is exactly what we would expect.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Dec 28 '18 at 6:29

























        answered Dec 28 '18 at 5:22









        mk18mk18

        1,94611330




        1,94611330






























            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%2f53946640%2fwhy-does-imshow-display-non-integer-x-and-y-values-for-the-pixel-position%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

            Mossoró

            Error while reading .h5 file using the rhdf5 package in R

            Pushsharp Apns notification error: 'InvalidToken'