photogrammetry | Python Photogrammetry Toolbox
kandi X-RAY | photogrammetry Summary
kandi X-RAY | photogrammetry Summary
This project intend to create a python photogrammetry toolbox. It provides an easy interface to run Bundler + Dense point cloud computation via PMVS2 and CMVS (as WIP). The main drawbacks of Bundler is that people have to install cygwin to use it and windows. The advantage of Python is that the scripting langage is multiplatform, so the same code will be ok to run Bundler and the other tools on windows, linux and mac ! No more cygwin... installation. This project make the Sift detector from VLFeat library works with Bundler. So the toolchain is OpenSource from A to Z. Other modules could be plug into because of the modularity approach that have been choosen. In a near future we could think in integrate a SIFTGpu matcher into the toolchain.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of photogrammetry
photogrammetry Key Features
photogrammetry Examples and Code Snippets
Community Discussions
Trending Discussions on photogrammetry
QUESTION
Thanks for taking the time to review my post. I hope that this post will not only yield results for myself but perhaps helps others too!
IntroductionCurrently I am working on a project involving pointclouds generated with photogrammetry. It consists of photos combined with laser scans. The software used in making the pointcloud is Reality Capture. Besides the pointcloud export one can export "Internal/External camera parameters" providing the ability of retrieving photos that are used to make up a certain 3D point in the pointcloud. Reality Capture isn't that well documented online and I have also posted in their forum regarding camera variables, perhaps it can be of use in solving the issue at hand?
Only a few variables listed in the camera parameters file are relevant (for now) in referencing camera positioning such as filename, x,y,alt for location, heading, pitch and roll as its rotation.
Currently the generated pointcloud is loaded into the browser compatible THREE.JS viewer after which the camera parameters .csv file is loaded and for each known photo a 'PerspectiveCamera' is spawned with a green cube. An example is shown below:
The challengeAs a matter of fact you might already know what the issue might be based on the previous image (or the title of this post of course ;P) Just in case you might not have spotted it, the direction of the cameras is all wrong. Let me visualize it for you with shabby self-drawn vectors that rudimentary show in what direction it should be facing (Marked in red) and how it is currently vectored (green).
Row 37, DJI_0176.jpg is the most right camera with a red reference line row 38 is 177 etc. The last picture (Row 48 is DJI_189.jpg) and corresponds with the most left image of the clustured images (as I didn't draw the other two camera references within the image above I did not include the others).
When you copy the data below into an Excel sheet it should display correctly ^^
...ANSWER
Answered 2022-Jan-02 at 22:26At first glance, I see three possibilities:
It's hard to see where the issue is without showing how you're using the
createCamera()
method. You could be swappingpitch
withheading
or something like that. In Three.js, heading is rotation around the Y-axis, pitch around X-axis, and roll around Z-axis.Secondly, do you know in what order the
heading, pitch, roll
measurements were taken by your sensor? That will affect the way in which you initiate yourTHREE.Euler(xRad, yRad, zRad, 'XYZ')
, since the order in which to apply rotations could also be'YZX', 'ZXY', 'XZY', 'YXZ' or 'ZYX'
.Finally, you have to think "What does
heading: 0
mean to the sensor?" It could mean different things between real-world and Three.js coordinate system. A camera with no rotation in Three.js is looking straight down towards-Z
axis, but your sensor might have it pointing towards+Z
, or+X
, etc.
I added a demo below, I think this is what you needed from the screenshots. Notice I multiplied pitch * -1
so the cameras "Look down", and added +180
to the heading so they're pointing in the right... heading.
QUESTION
I have a SwiftUI based app with a simple button that when pressed is supposed to open a Camera Class from AVFoundation that utilizes UIKit as well. Under the sheet I am not sure what exactly to place there. I tried CameraSession() and a few other ideas but I am sort of lost on bridging this SwiftUI button to open camera app. Thank you!
//Content View
...ANSWER
Answered 2021-Dec-16 at 08:07So to get around this first make your app has permission to access the users camera(go to Info.plist or info tab beside the build settings at the top and add Privacy camera usage and add "We need your camera to perform this action")
After that a simple call in the sheet's modifier should do the trick
QUESTION
I'm trying to create a USDZ object with the tutorial from Apple Creating 3D Objects from Photographs. I'm using the new PhotogrammetrySession within this sample project: Photogrammetry Command-Line App.
That's the code:
...ANSWER
Answered 2021-Jun-15 at 11:53tl;dr: Try another set of images, probably there is something wrong with your set of images.
I've had it work successfully except in one instance, and I received the same error that you are getting. I think for some reason it didn't like the set of photos I took for that particular object. You could try taking just a few photos of another simple object and try again and see if that is the problem with your first run.
QUESTION
I have a series of obj files which were produced by photogrammetry by my coworkers who specialize in dealing with GIS (Geographic Information Systems) data. The first few data points in the files look something like:
...ANSWER
Answered 2021-Apr-30 at 15:44The reason for the problem with these files is the large offset combined with 32-bit float values. In this case the objects all use the same geographic origin, probably at a lat/long of 0.000N/0.000E
Nearly all 3D graphics programs use 32-bit floating point values to store each points location, and the combination of the offset and the 32-bit value causes some of the precision to be lost. 32-bit floats have about 7 decimal digits of precision, so the offset of 4460688 in the example file completely dominates, and effectively cuts the model from 1mm resolution to 1m resolution data. The reason for the long triangles is that there is more data lost in one direction due to the asymmetry of the offset.
The solution is to apply some offset to bring the objects close to the origin BEFORE importing them with the 3D software. I wrote a quick python script that can help with this: https://gitlab.umich.edu/lsa-ts-rsp/xr-shiftOBJ/-/blob/main/shiftOBJ.py
QUESTION
Some models, especially ones produced through photogrammetry, don't look that good with any of the lighting presets the viewer can offer. They're often quite dark and surfaces are "shiny". What options do I have in modifying the shading? I'd just like to have a uniformly lit model.
I know I can replace the shader material on the model fragments but then I will lose the model textures. As far as I know I can't combine shaders in three.js. Is there a way to introduce my own custom lighting environment?
...ANSWER
Answered 2020-Sep-15 at 10:40Unfortunately there's no official way of customizing the environment: How to add custom environment map for background in autodesk forge?.
I think you could hack your way out of this, though, for example, by switching to one of the "simpler" environment presets, and finding an angle where the photogrammetry output is lit reasonably well:
QUESTION
I use Autodesk's Forge Reality Capture API for photogrammetry. All the process from generating photoscene to uploading receiving the download link works perfect, but at the last step, when I need to download .obj
file from AWS S3 bucket, it says that I need some extra credentials for access.
Here is the link that I receive:
...ANSWER
Answered 2020-Aug-20 at 19:56I think that your link is trimmed (perhaps by your application).
I just runned a scene and compared my results with your link and note the difference:
yours:
QUESTION
I'm trying to calculate the vegetation ratio of a forest using point clouds in FUSION. The vegetation ratio is the number of points returned from vegetation (returns from above a certain height, i.e. 2 meters) divided by the total number of returns.
I have 4 different datasets:
- Lidar from helicopter
- Lidar from Aircraft
- Photogrammetry pointcloud, feature-based
- Photogrammetry pointcloud, Semi-global matching
So: (Number of returns from over 2 m) / (Total number of returns)
.
I have tried some code in a Fusion Batch, but doesn't seem to get a valid answer.
I just get a gray area when I open it in ArcMap.
...ANSWER
Answered 2020-Jun-17 at 03:56The Answer to this was simply that the color display was distorted in ArcMap. The calculations were right, however it generated som extreme values which shifted the color scheme stretch. This created a big black/grey square. To fix the problem quickly, one can mask out the outliers using Raster calculator. Allthough, in the long run it's of course better to investigate why these outliers occur. I did not get that far with this project.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install photogrammetry
You can use photogrammetry like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page