Counting rocks of different sizes on shoreline using ArcGIS Desktop?
Clash 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?
arcgis-desktop geotiff-tiff digital-image-processing
New contributor
 |Â
show 8 more comments
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?
arcgis-desktop geotiff-tiff digital-image-processing
New contributor
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
4 hours ago
3
@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
4 hours ago
2
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 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
3 hours 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
3 hours ago
 |Â
show 8 more comments
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?
arcgis-desktop geotiff-tiff digital-image-processing
New contributor
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?
arcgis-desktop geotiff-tiff digital-image-processing
arcgis-desktop geotiff-tiff digital-image-processing
New contributor
New contributor
edited 10 mins ago
PolyGeoâ¦
51.9k1777233
51.9k1777233
New contributor
asked 4 hours ago
Javed
243
243
New contributor
New contributor
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
4 hours ago
3
@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
4 hours ago
2
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 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
3 hours 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
3 hours ago
 |Â
show 8 more comments
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
4 hours ago
3
@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
4 hours ago
2
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 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
3 hours 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
3 hours 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
4 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
4 hours ago
3
3
@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
4 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
4 hours ago
2
2
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 hours ago
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 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
3 hours 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
3 hours 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
3 hours 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
3 hours ago
 |Â
show 8 more comments
1 Answer
1
active
oldest
votes
up vote
5
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.
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
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.
add a comment |Â
up vote
5
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.
add a comment |Â
up vote
5
down vote
up vote
5
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.
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.
edited 2 hours ago
answered 2 hours ago
BERA
11.8k41537
11.8k41537
add a comment |Â
add a comment |Â
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.
Javed is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f297035%2fcounting-rocks-of-different-sizes-on-shoreline-using-arcgis-desktop%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
4 hours ago
3
@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
4 hours ago
2
I haven't messed with it but have seen promising demonstrations for object detection and inventorying. ArcGIS Pro has machine learning capabilities. If Pro isn't available, there are open source machine learning projects out there.
â Barbarossa
3 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
3 hours 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
3 hours ago