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

Geschlossen Veröffentlicht Sep 18, 2014 Bezahlt bei Lieferung
Geschlossen 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: #6473138

Über das Projekt

12 Vorschläge Remote Projekt Aktiv Oct 25, 2014

12 Freelancer bieten im Durchschnitt $286 für diesen Job

Jas3d

Hello Sir, i have 9 year experience. i can do any kind of 3d graphics works. i have attached some of my best works in my profile kindly check it .if my work satisfy your needs then pay me and i am sure it will you can Mehr

$333 USD in 10 Tagen
(80 Bewertungen)
6.7
stirbu

A proposal has not yet been provided

$400 USD in 3 Tagen
(1 Bewertung)
2.4
Nicolaiv

Предложение еще не подано

$250 USD in 3 Tagen
(0 Bewertungen)
0.0
johnpoulkas

I can do everything you asked and without steps. Just give me this image to start working. and you will take the model in 3 days.

$280 USD in 3 Tagen
(0 Bewertungen)
0.0
jiya183

A proposal has not yet been provided

$277 USD in 3 Tagen
(0 Bewertungen)
0.0
frempong

coverting 2D to 3D you need an expert who is try and tested modeler and i offer my self for this project i try me and you will see the diference

$333 USD in 3 Tagen
(0 Bewertungen)
0.0
qinghai333

Hello. I'm interesting in your 3D-visualization project. I have much experiences in image processing. I could complete it in short time.

$111 USD in 3 Tagen
(0 Bewertungen)
0.0
brij2103

Hi, I have 4 year of experience please see my cover letter below:- I am an experienced developer in: -native PHP,Zend(1,2),CI,Laravel,jQuery. -Python(Django) -core Java -Database: MySql,MongoDB,PDO Repository: Mehr

$101 USD in 12 Tagen
(0 Bewertungen)
0.0
nestoralmeida

La propuesta todavía no ha sido proveída

$277 USD in 3 Tagen
(0 Bewertungen)
0.0