View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003009 | Slicer4 | Core: Base Code | public | 2013-03-14 07:14 | 2014-03-06 05:54 |
Reporter | nicole | Assigned To | alexy | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Slicer 4.3.0 | Fixed in Version | Slicer 4.4.0 | ||
Summary | 0003009: Slice compositing pipeline not respecting color table alpha values | ||||
Description | Trying to craft a custom color table that has opacity values of 0 for the middle values, the slice compositing pipeline is not respecting the opacity values in the table when displaying the foreground + background volumes. | ||||
Steps To Reproduce | Load atlas.nii and functional_result.nii as greyscale volumes, place in foreground and background. Note that the opacity slider has to be used for compositing the two volumes rather than Slicer using the opacity=0 levels from the color table. | ||||
Additional Information | Playing with the compositing options, alpha blend and reverse alpha blend don't work, but add seems to get a bit closer. From Jon Koller: From Steve: | ||||
Tags | No tags attached. | ||||
2013-03-14 07:14
|
ColorTableOpacityData.zip (781,121 bytes) |
Hi, any progress on this? We are really excited to use it in several projects! thanks, |
|
any updates? thanks, |
|
Hi Jon, With the priority set to normal and severity set to minor, it's fallen below other critical bugs in Alex's work flow. Would you like to have it re-prioritised? |
|
Hi Nicole, If we could raise the priority, that would be great. This would be a really cool feature for us, and I know there are several others in our lab who would use slicer if it could display images like this. thanks, |
|
Hi Nicole and Alex, Sorry, I don't mean to be a pain. I'm making figures for two different papers that will be submitted by the end of the month. I'd love to use slicer to make these figures. Do you have a guess as to whether this will be fixed by then? If not, I need to look for another way to make my figures. Again, not trying to be a pain, I just need to decide what I'll be using. thanks, |
|
I loaded the volumes and LUT and the picture I got seems to respect 0 alpha. |
|
2013-04-12 05:40
|
|
Hi Alex, Thanks for taking a look. Are you sure it's really alpha 0? Or is it just blending the black with the background image? Try adjusting the foreground image slider and watching the background image. If you see the background image getting darker and lighter as you go, then that means it's mixing the background image with the black part of the foreground image. What I want it to look like is the background image untouched in the parts of the foreground image that are not red or blue when the foreground image is turned up to 100%. thanks, |
|
Hi Jon, if fg=funtional_result_volume; bg=atlas_volume; and fg_opacity = 1.0 blend_alpha = fg_alpha, which is what I see currently. But you want it to be blend_alpha = bg_alpha always independent of opacity, am I correct? |
|
2013-04-12 06:52
|
|
Jon, is that what you expectat This was made using vtkImageBlend::BlendMode(VTK_IMAGE_BLEND_MODE_COMPOUND) which is not currently exposed in slicer UI. |
|
Hi Alex, Am I wrong in the way I'm thinking about alpha? In my mind it means that if a foreground voxel has alpha 0, then it should be "transparent", and simply show the background voxel at 100%. Is this wrong? So maybe the formula should be this? blend_alpha = fg_opacity fg_alpha + (1 - fg_opacityfg_alpha) * bg_alpha That way if fg_alpha = 0.0, then blend_alpha will = bg_alpha, and the fg_alpha would still modulate blend_alpha the same way if it was = 1.0, which it almost always is. Feel free to call me if chatting would be easier, 314-488-7132 thanks again, |
|
Hi Alex, Sorry, I didn't see your second response before I sent that last note. It's hard to tell, but it still doesn't look right. If you just select "none" for the foreground image in the view from that last image, does the background image look the same? and when you turn the foreground image back on, does that background image get "darker"? It's hard to tell from the pictures. |
|
Jon, I suggest we discuss it with Steve, he is more knowledgeable about this pipeline. Are you available next Tuesday, April 16th? |
|
Sure, I'm available then. And actually, as I look back at Steve's comment, he even says "Probably it is replacing it with the fade value rather than multiplying the fade times the alpha", which I think is what I just suggested in the formula, right now in the bg part of the blend equation it's fg_opacity (the fade) and not fg_opacity*fg_alpha (the fade times the alpha). |
|
2013-04-16 12:10
|
VtkMRMLScalarVolumeDisplayNode.pdf (33,643 bytes) |
Jon, after talking to Steve we have decided that we have to restructure the pipeline as shown in the diagram |
|
Hi Alex, Thanks for the update. It looks like there are two new steps in the pipeline to implement. Any idea as to when this will be done? thanks again for moving this along, |
|
2013-04-16 18:01
|
|
2013-04-19 10:11
|
|
Here is a result of the new pipeline at fg opacity = 1. The bg does not changes as I decrease fg opacity, but fg fades to nothing at 0. |
|
Yes, I think that's it! yay! Will this be in tonight's build? |
|
I am testing performance now, scrolling seems just a bit slower but but should be probably ok |
|
Updated vtkMRMLScalarVolumeDisplayNode visualization pipeline to fix alpha compositing problem as described in the attached diagram. |
|
Great! |
|
Out of curiosity, is the nice schematics reported in "VtkMRMLScalarVolumeDisplayNode.pdf " added to either the wiki or doxygen ? |
|
Good question - do we have a way to add pdf or png files to doxygen? BTW, I made them with LucidChart, which is a very simple browser-based drawing package. |
|
Doxygen support images: http://www.stack.nl/~dimitri/doxygen/manual/commands.html#cmdimage We would need to make sure the IMAGE_PATH settings is properly configured: https://github.com/Slicer/Slicer/blob/master/Utilities/Doxygen/Doxyfile.txt.in#L744 As a convention, we could do the following: It means, if doxygen can be generated on a given platform, we would scan the source tree for path matching "*/Documentation/images" and append them to the IMAGE_PATH setting. What do you think ? |
|
I think it sounds great to have the option to add pngs to the doxygen - as we discussed today, probably a good idea to come up with our wish list for a nice system to be implemented in the namic renewal. |
|
Closing resolved issues that have not been updated in more than 3 months |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2013-03-14 07:14 | nicole | New Issue | |
2013-03-14 07:14 | nicole | Status | new => assigned |
2013-03-14 07:14 | nicole | Assigned To | => alexy |
2013-03-14 07:14 | nicole | File Added: ColorTableOpacityData.zip | |
2013-03-19 07:23 | jmk1 | Note Added: 0008145 | |
2013-04-01 14:45 | jmk1 | Note Added: 0008277 | |
2013-04-02 08:52 | nicole | Note Added: 0008285 | |
2013-04-03 09:39 | jmk1 | Note Added: 0008301 | |
2013-04-11 14:35 | jmk1 | Note Added: 0008378 | |
2013-04-12 05:39 | alexy | Note Added: 0008380 | |
2013-04-12 05:39 | alexy | Status | assigned => feedback |
2013-04-12 05:40 | alexy | File Added: LUT_Blend.PNG | |
2013-04-12 05:57 | jmk1 | Note Added: 0008381 | |
2013-04-12 06:41 | alexy | Note Added: 0008382 | |
2013-04-12 06:52 | alexy | File Added: LUT_Blend1.PNG | |
2013-04-12 06:55 | alexy | Note Added: 0008383 | |
2013-04-12 06:59 | jmk1 | Note Added: 0008384 | |
2013-04-12 07:10 | jmk1 | Note Added: 0008385 | |
2013-04-12 07:33 | alexy | Note Added: 0008386 | |
2013-04-12 08:15 | jmk1 | Note Added: 0008387 | |
2013-04-16 12:10 | alexy | File Added: VtkMRMLScalarVolumeDisplayNode.pdf | |
2013-04-16 12:12 | alexy | Note Added: 0008411 | |
2013-04-16 12:21 | jmk1 | Note Added: 0008412 | |
2013-04-16 18:01 | pieper | File Added: Screen Shot 2013-04-16 at 9.59.59 PM.png | |
2013-04-18 13:53 | pieper | Relationship added | related to 0002970 |
2013-04-19 10:11 | alexy | File Added: LUT_Blend2.PNG | |
2013-04-19 10:13 | alexy | Note Added: 0008448 | |
2013-04-19 10:18 | jmk1 | Note Added: 0008449 | |
2013-04-19 10:23 | alexy | Note Added: 0008450 | |
2013-04-19 10:44 | alexy | Note Added: 0008451 | |
2013-04-19 10:44 | alexy | Status | feedback => resolved |
2013-04-19 10:44 | alexy | Resolution | open => fixed |
2013-04-20 13:00 | pieper | Note Added: 0008454 | |
2013-04-23 07:02 | jcfr | Note Added: 0008466 | |
2013-04-23 07:23 | pieper | Note Added: 0008467 | |
2013-04-23 07:39 | jcfr | Note Added: 0008468 | |
2013-04-23 13:14 | pieper | Note Added: 0008469 | |
2014-03-06 05:15 | jcfr | Note Added: 0011069 | |
2014-03-06 05:16 | jcfr | Status | resolved => closed |
2014-03-06 05:54 | jcfr | Fixed in Version | => Slicer 4.4.0 |