Convert 2D image to 3D solid with texture (Python)

Fertiggestellt Veröffentlicht Sep 18, 2014 Bezahlt bei Lieferung
Fertiggestellt Bezahlt bei Lieferung

Hello Python 3D modeling/visualization experts!

I'd like you to write Python code to convert 2D pictures into 3D printabale STL and VRML(or X3D) files, by interpreting grayscale color value of pixel as height. My preferred 3D library is VTK with Python binding.

Required functionality

----------------------------

1. Read 2D image (PNG, JPEG, GIF, etc as long as PIL or matplotlib's imread support)

2. Convert image to grayscale

3. Create 3D surface mesh by interpreting grayscale color value of each pixcel in 2D image as z axis height (warp height map?)

4a. Create flat bottom surface at certain z (specified by elevation argument)

4b. Create 3D bottom surface beneath (specified by thickness argument) the top surface created in step 3 by projecting all the vertices downwards along normal vectors (Note: it's not a simple offset in z direction)

5. Connect the two surfaces to make water tight solid for 3D printing

6. Cut out solid where z is less than certain value (specified by z_mask argument) i.e. take CSG intersection

7. Export the resulting solid as STL file

8. Map colored 2D image as texture onto the top 3D surface (image read in step 1 or another texture image)

9. Setup lighting(s), camera, etc and take a screenshot of rendering

10. Export it as VRML2.0 (or X3D) file and package it up for 3D color print at Shapeways

For step 4&5, please refer to:

[url removed, login to view]

[url removed, login to view]

[url removed, login to view]

Basically I'd like you to replicate above surf2solid Matlab code for Python. Hopefully majority of functionality needed are readily available in existing Python libraries (VTK, Matplotlib, FreeCAD, etc).

For step 10, please refer to the guidance by Shapeways:

[url removed, login to view]

Other requirements

------------------

* Implement as an importable module with 'if __name__ == "__main__":' to take command line arguments for testing (no need for GUI)

* Take "resolution" argument with default 0.1 mm/pixel

* Use Python logging facility to output debug messages

* Add reasonable amount of comments in code so that I can maintain it later

* Try to follow PEP8 Style Guide for Python Code

* Frequent communication; One line status update once in two days; describing which part you are working on

* All the outcome of the project belong to the project owner

Sharing code by git would be nice. Private repo on GitHub or Bitbucket would be excellent.

Target environment

------------------

Windows 7 32bit and linux (Ubuntu 13.10 64bit on Pythonanywhere)

Python 2.7

Preferred libraries (use as needed)

----------------------------------

VTK 5.8.0

numpy 1.8.1

scipy 0.14.0

matplotlib 1.3.1

PIL 1.1.7

scikits-image 0.7.1

FreeCAD 0.14

You could use any other Python libraries as long as they are listed here (for Ptyhon2.7)

[url removed, login to view]

Please consult in advance if you'd like to use other Python libraries which is not listed in above list or if you'd like to use non-Python tools. All libraries/tools must be BSD-like license (i.e. ok for commercial use) and must be CLI (i.e. No GUI)

What I provide as the project owner

* Requirement (this document)

* Example files (attached)

* Feedback as the project progress

* Reward as agreed at the start of project

What you provide as a developer

* Technical advice on requirements

* Source code

Project time frame and milestone

I’d expect the project to be completed in about two weeks.

1st milestone: Requirements agreed and identified libraries to use (1/4 of reward)

2nd milestone: 1st version (proof of concept) submitted (1/4 of reward)

3rd milestone: 2nd version (functional) submitted (1/4 of reward)

4th milestone: Final version submitted and project completed (1/4 of reward)

3D Modelling 3D Rendering English (US) Translator Matlab und Mathematica Python

Projekt-ID: #6472241

Über das Projekt

10 Vorschläge Remote Projekt Aktiv Sep 24, 2014

Vergeben an:

gustavopuche

Good evening, I've been studying your project and I see that you are an excellent planner. This makes our collaboration easier. I am very interested in 3D modeling and visualization. I have worked for over 7 years Mehr

$444 USD in 10 Tagen
(1 Bewertung)
2.9

10 Freelancer bieten im Durchschnitt $3263 für diesen Job

EngineerCat

First of all, thank you for your invitation. I'm aware I'm above your stipulated budget, but hopefully we can negotiate something. I've done lots of computer graphics (my master's degree was on computer graphics) an Mehr

$555 USD in 10 Tagen
(9 Bewertungen)
4.4
aistechnolabs

Hi, We have gone through your requirement and we understand that you are looking for highly skilled, qualified, and experience Development team for your project. As our teams have work on several similar projects Mehr

$979 USD in 15 Tagen
(2 Bewertungen)
4.3
crazypixelteam

A proposal has not yet been provided

$400 USD in 5 Tagen
(12 Bewertungen)
4.2
mail2vguna

Hi I have 10 years experience in image processing with openCV and VTK., DirectX Looking forward your project. skype: talk2gunav Thanks Guna

$500 USD in 15 Tagen
(1 Bewertung)
0.8
jinjiao511

Dear Very interesting job for me. I have been worked for python cuda-convnet for 3 months this year which could be found in code.google.com. It is a image recognition system which implements convolution network and Mehr

$444 USD in 15 Tagen
(1 Bewertung)
0.0
sabirshah4545

i will do it thanks...................................................................................................................................

$100 USD in 3 Tagen
(1 Bewertung)
0.0
saurabhtanwer97

A proposal has not yet been provided

$27777 USD in 100 Tagen
(0 Bewertungen)
0.0
alee23

A proposal has not yet been provided

$333 USD in 3 Tagen
(0 Bewertungen)
0.0