How to count rocks of different sizes on a shoreline?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
4
down vote

favorite












I have a 5cm resolution geotiff image for a shoreline. I need to count the number of rocks in three classes (e.g., >6 feet, 3-6 feet, and <3 feet). I don't have any point cloud data. What will be the best gis approach to solve this problem?enter image description here










share|improve this question









New contributor




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















  • 3




    A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
    – Jon
    2 hours ago







  • 1




    when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
    – Kirk Kuykendall
    2 hours ago







  • 2




    @Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
    – Jon
    2 hours ago






  • 2




    I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
    – hugonbg
    1 hour ago






  • 2




    Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
    – danak
    1 hour ago
















up vote
4
down vote

favorite












I have a 5cm resolution geotiff image for a shoreline. I need to count the number of rocks in three classes (e.g., >6 feet, 3-6 feet, and <3 feet). I don't have any point cloud data. What will be the best gis approach to solve this problem?enter image description here










share|improve this question









New contributor




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















  • 3




    A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
    – Jon
    2 hours ago







  • 1




    when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
    – Kirk Kuykendall
    2 hours ago







  • 2




    @Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
    – Jon
    2 hours ago






  • 2




    I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
    – hugonbg
    1 hour ago






  • 2




    Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
    – danak
    1 hour ago












up vote
4
down vote

favorite









up vote
4
down vote

favorite











I have a 5cm resolution geotiff image for a shoreline. I need to count the number of rocks in three classes (e.g., >6 feet, 3-6 feet, and <3 feet). I don't have any point cloud data. What will be the best gis approach to solve this problem?enter image description here










share|improve this question









New contributor




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











I have a 5cm resolution geotiff image for a shoreline. I need to count the number of rocks in three classes (e.g., >6 feet, 3-6 feet, and <3 feet). I don't have any point cloud data. What will be the best gis approach to solve this problem?enter image description here







arcgis-desktop geotiff-tiff digital-image-processing






share|improve this question









New contributor




Javed 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




Javed 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 1 hour ago









lambertj

1,4171421




1,4171421






New contributor




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









asked 2 hours ago









Javed

213




213




New contributor




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





New contributor





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






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







  • 3




    A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
    – Jon
    2 hours ago







  • 1




    when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
    – Kirk Kuykendall
    2 hours ago







  • 2




    @Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
    – Jon
    2 hours ago






  • 2




    I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
    – hugonbg
    1 hour ago






  • 2




    Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
    – danak
    1 hour ago












  • 3




    A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
    – Jon
    2 hours ago







  • 1




    when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
    – Kirk Kuykendall
    2 hours ago







  • 2




    @Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
    – Jon
    2 hours ago






  • 2




    I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
    – hugonbg
    1 hour ago






  • 2




    Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
    – danak
    1 hour ago







3




3




A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
– Jon
2 hours ago





A "geotiff image" could be anything! It could be a 3-band RGB image, a DEM, some calculated index, etc. Please specify what your image data are. Even better, provide a picture.
– Jon
2 hours ago





1




1




when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
– Kirk Kuykendall
2 hours ago





when you said this: >6 feet, 3-6 feet, and <6 feet did you mean this: >6 feet, 3-6 feet, and <3 feet ?
– Kirk Kuykendall
2 hours ago





2




2




@Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
– Jon
2 hours ago




@Javed Ok, there is no way that's a 1 band 8 bit raster. Also, I don't think this is a great question for GIS because it's really image processing. You won't need to use any GIS techniques to solve it (unless you want the georeferenced coordinates of each rock). Also, it looks pretty difficult. You'll need edge detection/object identification of some kind. The trees and the algae aren't doing you any favors, either. If you're just doing this image, you can do it by hand by tracing either rock boundaries or major axes, then GIS would be useful.
– Jon
2 hours ago




2




2




I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
– hugonbg
1 hour ago




I suggest you ask in the imagej forum forum.image.sc The imagej is used to identify shapes, size, colors, etc. in microscope images, I believe someone there can help you.
– hugonbg
1 hour ago




2




2




Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
– danak
1 hour ago




Since this seems pretty fuzzy, what with rocks being covered by others and other objects, you might want to approach this a rough pattern density problem. Botanists use pictures/transparencies of density to classify sections. There's certainly a way to use GIS to help with this.
– danak
1 hour ago










1 Answer
1






active

oldest

votes

















up vote
2
down vote













For the most part not an ArcGIS answer but you could try it anyway since it is completely free software.
You could try using scikit-image. It comes with Anaconda (with Anaconda you also get jupyter-notebook which is a great python ide).



I followed this tutorial and got some results: Region-based segmentation



import skimage
import numpy as np
rocks = skimage.io.imread('/home/bera/Downloads/rocks.jpg')
rocks_greyscale = skimage.color.rgb2gray(rocks)

elevation_map = skimage.filters.sobel(rocks_greyscale)

markers = np.zeros_like(rocks_greyscale)
markers[rocks_greyscale < 0.3] = 1 #Adjust, I just tried different values
markers[rocks_greyscale > 0.7] = 2 #Adjust

segmentation = skimage.morphology.watershed(elevation_map, markers)

skimage.io.imsave('/home/bera/Downloads/rocks_segmented.tif',segmentation)


You will need some tweaking. Not all stones are segmented and some things that are not stones is. Then convert the output image to vector and use for example minimum bounding geometry to get size of stones. Or use some raster tool to count different size objects.



enter image description here



enter image description here






share|improve this answer






















    Your Answer







    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "79"
    ;
    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: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );






    Javed 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%2fgis.stackexchange.com%2fquestions%2f297035%2fhow-to-count-rocks-of-different-sizes-on-a-shoreline%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
    2
    down vote













    For the most part not an ArcGIS answer but you could try it anyway since it is completely free software.
    You could try using scikit-image. It comes with Anaconda (with Anaconda you also get jupyter-notebook which is a great python ide).



    I followed this tutorial and got some results: Region-based segmentation



    import skimage
    import numpy as np
    rocks = skimage.io.imread('/home/bera/Downloads/rocks.jpg')
    rocks_greyscale = skimage.color.rgb2gray(rocks)

    elevation_map = skimage.filters.sobel(rocks_greyscale)

    markers = np.zeros_like(rocks_greyscale)
    markers[rocks_greyscale < 0.3] = 1 #Adjust, I just tried different values
    markers[rocks_greyscale > 0.7] = 2 #Adjust

    segmentation = skimage.morphology.watershed(elevation_map, markers)

    skimage.io.imsave('/home/bera/Downloads/rocks_segmented.tif',segmentation)


    You will need some tweaking. Not all stones are segmented and some things that are not stones is. Then convert the output image to vector and use for example minimum bounding geometry to get size of stones. Or use some raster tool to count different size objects.



    enter image description here



    enter image description here






    share|improve this answer


























      up vote
      2
      down vote













      For the most part not an ArcGIS answer but you could try it anyway since it is completely free software.
      You could try using scikit-image. It comes with Anaconda (with Anaconda you also get jupyter-notebook which is a great python ide).



      I followed this tutorial and got some results: Region-based segmentation



      import skimage
      import numpy as np
      rocks = skimage.io.imread('/home/bera/Downloads/rocks.jpg')
      rocks_greyscale = skimage.color.rgb2gray(rocks)

      elevation_map = skimage.filters.sobel(rocks_greyscale)

      markers = np.zeros_like(rocks_greyscale)
      markers[rocks_greyscale < 0.3] = 1 #Adjust, I just tried different values
      markers[rocks_greyscale > 0.7] = 2 #Adjust

      segmentation = skimage.morphology.watershed(elevation_map, markers)

      skimage.io.imsave('/home/bera/Downloads/rocks_segmented.tif',segmentation)


      You will need some tweaking. Not all stones are segmented and some things that are not stones is. Then convert the output image to vector and use for example minimum bounding geometry to get size of stones. Or use some raster tool to count different size objects.



      enter image description here



      enter image description here






      share|improve this answer
























        up vote
        2
        down vote










        up vote
        2
        down vote









        For the most part not an ArcGIS answer but you could try it anyway since it is completely free software.
        You could try using scikit-image. It comes with Anaconda (with Anaconda you also get jupyter-notebook which is a great python ide).



        I followed this tutorial and got some results: Region-based segmentation



        import skimage
        import numpy as np
        rocks = skimage.io.imread('/home/bera/Downloads/rocks.jpg')
        rocks_greyscale = skimage.color.rgb2gray(rocks)

        elevation_map = skimage.filters.sobel(rocks_greyscale)

        markers = np.zeros_like(rocks_greyscale)
        markers[rocks_greyscale < 0.3] = 1 #Adjust, I just tried different values
        markers[rocks_greyscale > 0.7] = 2 #Adjust

        segmentation = skimage.morphology.watershed(elevation_map, markers)

        skimage.io.imsave('/home/bera/Downloads/rocks_segmented.tif',segmentation)


        You will need some tweaking. Not all stones are segmented and some things that are not stones is. Then convert the output image to vector and use for example minimum bounding geometry to get size of stones. Or use some raster tool to count different size objects.



        enter image description here



        enter image description here






        share|improve this answer














        For the most part not an ArcGIS answer but you could try it anyway since it is completely free software.
        You could try using scikit-image. It comes with Anaconda (with Anaconda you also get jupyter-notebook which is a great python ide).



        I followed this tutorial and got some results: Region-based segmentation



        import skimage
        import numpy as np
        rocks = skimage.io.imread('/home/bera/Downloads/rocks.jpg')
        rocks_greyscale = skimage.color.rgb2gray(rocks)

        elevation_map = skimage.filters.sobel(rocks_greyscale)

        markers = np.zeros_like(rocks_greyscale)
        markers[rocks_greyscale < 0.3] = 1 #Adjust, I just tried different values
        markers[rocks_greyscale > 0.7] = 2 #Adjust

        segmentation = skimage.morphology.watershed(elevation_map, markers)

        skimage.io.imsave('/home/bera/Downloads/rocks_segmented.tif',segmentation)


        You will need some tweaking. Not all stones are segmented and some things that are not stones is. Then convert the output image to vector and use for example minimum bounding geometry to get size of stones. Or use some raster tool to count different size objects.



        enter image description here



        enter image description here







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 20 mins ago

























        answered 28 mins ago









        BERA

        11.8k41537




        11.8k41537




















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









             

            draft saved


            draft discarded


















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












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











            Javed 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%2fgis.stackexchange.com%2fquestions%2f297035%2fhow-to-count-rocks-of-different-sizes-on-a-shoreline%23new-answer', 'question_page');

            );

            Post as a guest













































































            Comments

            Popular posts from this blog

            What does second last employer means? [closed]

            Installing NextGIS Connect into QGIS 3?

            One-line joke