patmo141 / object_alignment Goto Github PK
View Code? Open in Web Editor NEWpicked points and ICP alignment addon for Blender
License: GNU General Public License v3.0
picked points and ICP alignment addon for Blender
License: GNU General Public License v3.0
See #5, addon should work even if folder is named something other than object_alignment
I have not tested yet
I guess a version of the add-on in this repository is demonstrated here?
https://www.youtube.com/watch?v=WxaOFZPt6Ws
In the demonstration the add-on has many more features. I guess these features are not committed yet, or can they be activated somehow?
Hey, I'd like to cite object_alignment in a paper. Wanna use zenodo or something to get a DOI for it?
The user tends to want some reassurance that the ICP is actually working. Providing an option to update the display each iteration and / or adding a progress bar would be solutions for this.
I just want to register here that this plugin does not work on Blender 7.76.
It works fine on 2.79
Python refused to run the ICP Align or ICP Align Redraw, throwing:
TypeError: list indices must be integers or slices, not float
I fixed the error and have full ICP functionality by adding an integer cast so "i = fmod(n,5)" became "i = int(fmod(n,5))"
This happened on macOS 10.14.4, Blender version 2.97b
If someone is using the b_280 branch, and uses the update, it will pull the master branch
Hi I am experiencing an issue when I try to pick points for aligment.
When I select both the base object an the align object and click on "Align: Picked Points" Button I get this error:
Traceback (most recent call last): File "/Users/leonlazic/Library/Application Support/Blender/2.80/scripts/addons/patmo141-object_alignment-2f5bc25/operators/align_pick_points.py", line 241, in invoke ob.select = False AttributeError: 'Object' object has no attribute 'select'
Align Object Version: 0.2.0
OS: Mac OS
Blender Version: 2.80 2019-07-29
Best Regards, Leon
Hi,
first of all, congratulations for this plugin.
Is is possible to include some short documentation on the parameters?
Specifically I´d like to know exactly what RIGID/ROT_LOC_SCALE do.
Does ROT_LOC_SCALE indicates that one of the meshes is also allowed to scale in addition to rotate and translate in space? would it stretch the mesh? is the scaling the same in x,y and z?
Thanks.
Hello Everyone! I'm having trouble picking points. My blender version is 3.2.2 and using the master branch of the addon.
The ICP works fine by clicking "ICP align" several times (didn't touch any setting, leaved everything default.) in a Suzanne monkey with 3 subdividions, even though this is ideal and not the real-world use that one intends to use the addon for.
I'm not sure how the add-on particularly works. (I've watched the YT videos and have a basic understanding.), but I believe that the "picked points" tool is very important for dental work. In my case for a fusion of a high-res 3D scanned denture into a low-res CBCT denture. Where I have a whole CBCT skull and a small scanned dental cast.
Weight paint seems to work "fine" btw, or at least it doesn't throw any error. (So, not sure it's doing its work)
Does the "picked points" just make things faster (at least avoids crashes?) or more accurate? What's its purpose? What happens if I don't use weight paint in a situation that deserves it (like in the patmo141 YT video?) What does the alignment method do? So far, without the picked points the only results I get are either an averaging of position between two objects or a crash.
This happens when I click "Align: Picked Points":
On a side note, when I click "ICP Align Redraw" there's also an error (just reporting it, don't know how it differs from "ICP align")
.
OS: LinuxMint 20.3
Blender Version: 3.2.2
Problem: Option Align Picked Points doesn't work. I select Base Object, Align Object, hit "Align" and get such an error message. I used this method ( first points, later weight paint) on blender 2.79b and blender 2.83.6 (with proper version of addon) and always worked like a charm. So what's wrong?
Hello
I've got a problem when I try to pick points for aligment.
When I select both the base object an the align object and click on "Align: Picked Points" Button I get this error:
Traceback (most recent call last):
File "/home/anna/.config/blender/2.80/scripts/addons/object_alignment-b_280/operators/align_pick_points.py", line 320, in invoke
bpy.ops.screen.region_toggle(ctx, region_type='UI')
File "/home/anna/Pulpit/blender 2.8/blender-2.80-linux-glibc217-x86_64/2.80/scripts/modules/bpy/ops.py", line 199, in call
ret = op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
AttributeError: Calling operator "bpy.ops.screen.region_toggle" error, could not be found
location: :-1
Alignment version 0.2.0, branch 2.80
Currently, if I don't pre-align the meshes, I get a ValueError in affine_matrix_from_points. It would be nice to handle this error better, and give a message to the user saying he needs to use the Picked Points alignment before attempting ICP.
Blender 2.79 on different laptop there is another problem:
Traceback (most recent call last):
File "/home/akmint19/.config/blender/2.79/scripts/addons/object_alignment-master/operators/align_pick_points.py", line 267, in invoke
bpy.ops.screen.area_split(override, direction='VERTICAL', factor=0.5, mouse_x=-100, mouse_y=-100)
File "/home/akmint19/Pulpit/blender-2.79-e045fe53f1b0-linux-glibc217-x86_64/2.79/scripts/modules/bpy/ops.py", line 195, in call
ret = op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
TypeError: Converting py args to operator properties: : keyword "mouse_x" unrecognized
location: :-1
mx * vect -> mx @ vec
Hi patmo,
I've been using your addon for years now, i absolutely love your work.
I hadn't reinstalled the addon for quite some time and was trying to figure out which Blender/ipc-alignment combo works.
By the way, if you have a roadmap of todos for the addon i'd love to contribute where i can.
This may be a minor issue - but had me thinking for a while that the addon wasn't working right.
Trying to verify the addon working after install from file - i duplicated the default cube and tried to align it. Sometimes it would align to 2 surfaces and then get stuck, other times it would throw this error. Finally i figured it may have to do with too little available geometry so -
Once i tried it with a torus, i wouldn't get that issue.
happened identically on 2.79b/master install as well as
2.80 release/280 branch:
2.79
Traceback (most recent call last):
File "C:\Users\me\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\object_alignment-master\operators\icp_align.py", line 102, in execute
M = affine_matrix_from_points(A, B, shear=False, scale=False, usesvd=True)
File "C:\Users\me\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\object_alignment-master\functions\general.py", line 156, in affine_matrix_from_points
raise ValueError("input arrays are of wrong shape or type")
ValueError: input arrays are of wrong shape or type
location: <unknown location>:-1
2.80
Traceback (most recent call last):
File "C:\Users\me\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\object_alignment-b_280\operators\icp_align.py", line 102, in execute
M = affine_matrix_from_points(A, B, shear=False, scale=False, usesvd=True)
File "C:\Users\me\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\object_alignment-b_280\functions\general.py", line 156, in affine_matrix_from_points
raise ValueError("input arrays are of wrong shape or type")
ValueError: input arrays are of wrong shape or type
location: <unknown location>:-1
@patmo141 Hi.You did a fantastic work for the object alignment. I found your article at stackoverflow at 2012. It's a old article. The link is here:
https://stackoverflow.com/questions/9403762/raw-floating-point-encoding
I met the same problem too. When I decode the base64 data, I got the vertex data like 'a0a8f9cd20d251280bcc1' and the face data like '04000000000000000'. It's hard to move to the next. Would you please give me some advice. Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.