The Stanford bunny - tetrahedral mesh - matlab

I am doing some research on hex-mesh generation (via polycube deformation). I would like to test my algorithm on the 3D Stanford bunny geometry. I am using Matlab for my research. I need a good quality tetrahedral mesh of the bunny, i.e. list of vertices + list of indexes of tetrahedrons in some text file. Could anyone help me with this?
I tried to search through the internet, but I have not found the data I need, i.e. list of vertices + list of indexes of tetrahedrons in some text file.

A simple google turned up this website as the first result:
http://graphics.stanford.edu/data/3Dscanrep/
You can download the PLY file from there which has the data you need.

Related

How do I convert several hundrets of point clouds (xyz.files) into meshes (obj-format) using meshlab server?

I have about 200 point-cloud files (in the xyz-format) that I want to automativally convert into meshes (in the obj format). How do I write a batch-file for this task in the meshlab server? The meshes should be in a very good quality and there can't be any holes inside the mesh. In addition to that the mesh should look like the pointcloud and it can't have any aritifacts or problems with normals.
This link has a sample xyz-file in it. Maybe it helps to come up with a result to this question.
https://drive.google.com/file/d/128d1CNonGSn5AjmvS0jl49SFzrbtUE6K/view?usp=sharing
Thank you very much in advance for your help!!
Chris

Extracting 2D surface from 3D STEP model

I'm trying to figure out a good way to programmatically generate contours describing a 2D surface, from a 3D STEP model. Application is generating NC code for a laser-cutting program from a 3D model.
Note: it's easy enough to do this in a wide variety of CAD systems. I am writing software that needs to do it automatically.
For example, this (a STEP model):
Needs to become this (a vector file, like an SVG or a DXF):
Perhaps the most obvious way of tackling the problem is to parse the STEP model and run some kind of algorithm to detect planes and select the largest as the cut surface, then generate the contour. Not a simple task!
I've also considered using a pre-existing SDK to render the model using an orthographic camera, capture a high-res image, and then operating on it to generate the appropriate contours. This method would work, but it will be CPU-heavy, and its accuracy will be limited to the pixel resolution of the rendered image - not ideal.
This is perhaps a long shot, but does anyone have thoughts about this? Cheers!
I would use a CAD library to load the STEP file (not a CAD API), look for the planar face with the higher number of edge curves in the face loop and transpose them on the XY plane. Afterward, finding 2D geometry min/max for centering etc. would be pretty easy.
Depending on the programming language you are using I would search for "CAD control" or "CAD component" on Google combining it with "STEP import".

2d floor plan (image) dataset for ML

Im looking for 2d floor plan dataset for annotation, but cannot find the big dataset. I already found site 2d floor plan dataset, but here does not have a lot dataset. Will be good if find around 500 of 2d floor images(.jpg) dataset
There are 500 floor plans (in the form of images) available here:
https://rit.rakuten.co.jp/data_release/
You need to make an application to get access to them.
Additionally, I've seen some open data-sets here:
http://dag.cvc.uab.es/resources/floorplans/
https://github.com/gesstalt/ROBIN/blob/master/ROBIN.zip
http://mathieu.delalandre.free.fr/projects/sesyd/symbols/floorplans.html
https://www.kaggle.com/finlay/renthop-image-extract-floorplan-img/data
Good luck!

Image registration of two volume with different number of slices

I am trying to register two volumetric images from brain (PET and CT or even PET and MR). Each of these volumetric images contains different numbers of 2D images (slices).
For example, CT has 150 slices and PET has 100 slices. I was thinking of using an interpolation method to calculate and reduce the number of CT slices to 100. Is this a correct approach? Does anyone know of any resources that could be helpful for me? like a pseudo code, or steps that I should go through for registering two volumetric images.
Thank you :)
If you know the spacing information for the 150 CT slices and the 100 PET slices, you can look into MATLAB's interp1 function for interpolating along one axis to rescale the images to the same number of pixels. From here it might be possible to use MATLAB's imregister to perform registration.
If you are looking to learn how registration works under the hood (transforming between pixel and physical coordinates, transforming/resampling images, etc.), one resource I can direct you to is the ITK Software Guide pdf.
In particular, try reading Book 1 Section 4.1.4 (page 41 of the pdf) on image representation, and Book 2 Section 3.9 (page 532 of the pdf) on transforms.
In general, the problem of transforming and interpolating with 3D images in registration can be pretty cumbersome to write code for. You need to ask yourself about the spacing and orientation of pixels, how to transform and interpolate images so that their grids overlap, and you also need to decide what to do with pixels in your grid that lie outside the image boundary when evaluating the similarity metric.
While it's up to you to do what you think is best, I suggest you use existing registration programs if they are capable of doing what you want:
MATLAB's imregister (I have never used it so I can't comment on it)
simpleITK for Python
the ITK for C++ has a learning curve but gives full control over the registration process
elastix is a command line program that uses a text file of parameters to perform registration.
3D slicer has a graphical user interface for simple linear registration

Google Earth Heat Maps

Is there a way to create a heat map in google earth, so areas with higher values (of some specified parameter, such as population) appear as hotspots?
This seems possible.
For instance, take a look at those few links :
Disclaimer : I've tried none of those
HeatMapAPI.com
And an example
But I'm not sure how you'd do it ; seems related to .NET and a dll in some way... so might not be as nice as it seems...
Density Mapping in Google Maps with HeatMapAPI
Heat Maps for Google Maps - (a.k.a GeoIQ mashup)
Using Google Maps to Produce Heat Maps
You've got a couple of links in those articles too ; some might be interesting too.
My colleague developed an open source java program that will generate 3D heat maps (KML) files for Google Earth from simply formatted XML data files. It may be of use. The entire project code is up at https://github.com/Noblis/OSAT You can ignore the bulk of what's there, and focus on GUIMain and the supporting files. There's sample files and documentation. I'd call it about a 0.5 version - it works, we used it in our studies, but there's some rough edges. It was done for transportation accessibility studies, but you can change the parameters you're graphing to anything you want, run from command line, whatever.
You can use the vertical axis to either view the same parameter as is used for the color OR use it to map an entirely different variable.
Here's two screen shots so you can see what it does:
tool interface:
example 3D output:
You can create polygons in a KML file and set the color of them. You can also make the polygons 3D, with height perhaps representing temperature.
There is also http://www.openheatmap.com, which offers free heatmaps on top of OpenStreetMap from a CSV upload.
Try free API heat maps. A really interesting implementation : http://en.tixik.com/tools/heatmaps
HeatmapTool.com can take a CSV file of coordinates and intensity values to generate heat map tiles for Google Maps.