Opened 5 years ago

Last modified 5 years ago

#3297 assigned defect

Error opening grayscale + alpha 2D image

Reported by: goddard@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Volume Data Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-19.4.0-x86_64-i386-64bit
ChimeraX Version: 1.0rc202005242203 (2020-05-24 22:03:11 UTC)
Description
Opening a single plane grayscale + alpha channel image gives this error.  Also happens in ChimeraX 0.93, 0.92 and July 2019.  Problem is the tiff reading code is not considering the case of two-component images (gray + alpha) and the size (m,n,2) image is then interpreted incorrectly as a 3d map instead of a 2d plane.


Log:
UCSF ChimeraX version: 1.0rc202005242203 (2020-05-24)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open gray_alpha.tif

Opened gray_alpha.tif, grid size 1600,1654,1, pixel 1, shown at step 1, values
uint8  
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.  
  
Traceback (most recent call last):  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/updateloop.py", line 73, in draw_new_frame  
view.draw(check_for_changes = False)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 166, in draw  
self._draw_scene(camera, drawings)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 240, in _draw_scene  
draw_transparent(r, transparent_drawings)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1432, in draw_transparent  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/opengl.py", line 1170, in draw_transparent  
draw()  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1432, in <lambda>  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1438, in _draw_multiple  
d.draw(renderer, draw_pass)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 760, in draw  
pd = self._update_planes(renderer)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 528, in _update_planes  
pd = self._update_2d_texture_planes(view_dir)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 536, in _update_2d_texture_planes  
pd = self._texture_2d_planes(axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 562, in _texture_2d_planes  
pd = self._make_planes(axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 690, in _make_planes  
d = Texture2dPlanes(self, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 959, in __init__  
self._update_textures(planes)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1031, in _update_textures  
textures = [self._plane_texture(k, axis) for k,axis in planes]  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1031, in <listcomp>  
textures = [self._plane_texture(k, axis) for k,axis in planes]  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1038, in _plane_texture  
self._fill_plane_texture(k, axis, t)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1057, in _fill_plane_texture  
data = ir._color_plane(plane, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 229, in _color_plane  
m = self._matrix_plane(plane, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 206, in _matrix_plane  
p = squeeze(m, 2-axis) # Reduce from 3d array to 2d.  
File "<__array_function__ internals>", line 6, in squeeze  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/numpy/core/fromnumeric.py", line 1483, in squeeze  
return squeeze(axis=axis)  
ValueError: cannot select an axis to squeeze out which has size not equal to
one  
  
Traceback (most recent call last):  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/triggerset.py", line 130, in invoke  
return self._func(self._name, data)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/filehistory.py", line 73, in <lambda>  
t.add_handler('frame drawn', lambda *args, s=self: s.capture_thumbnails_cb())  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/filehistory.py", line 85, in capture_thumbnails_cb  
fs.capture_image(models, ses)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/filehistory.py", line 173, in capture_image  
self.image = models_image(session, models, size)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/filehistory.py", line 235, in models_image  
image = v.image(width, height, camera = c, drawings = models)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 446, in image  
self.draw(c, drawings, swap_buffers = False)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 166, in draw  
self._draw_scene(camera, drawings)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/view.py", line 240, in _draw_scene  
draw_transparent(r, transparent_drawings)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1432, in draw_transparent  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/opengl.py", line 1170, in draw_transparent  
draw()  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1432, in <lambda>  
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/graphics/drawing.py", line 1438, in _draw_multiple  
d.draw(renderer, draw_pass)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 760, in draw  
pd = self._update_planes(renderer)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 528, in _update_planes  
pd = self._update_2d_texture_planes(view_dir)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 536, in _update_2d_texture_planes  
pd = self._texture_2d_planes(axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 562, in _texture_2d_planes  
pd = self._make_planes(axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 690, in _make_planes  
d = Texture2dPlanes(self, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 959, in __init__  
self._update_textures(planes)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1031, in _update_textures  
textures = [self._plane_texture(k, axis) for k,axis in planes]  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1031, in <listcomp>  
textures = [self._plane_texture(k, axis) for k,axis in planes]  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1038, in _plane_texture  
self._fill_plane_texture(k, axis, t)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 1057, in _fill_plane_texture  
data = ir._color_plane(plane, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 229, in _color_plane  
m = self._matrix_plane(plane, axis)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/map/image3d.py", line 206, in _matrix_plane  
p = squeeze(m, 2-axis) # Reduce from 3d array to 2d.  
File "<__array_function__ internals>", line 6, in squeeze  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/numpy/core/fromnumeric.py", line 1483, in squeeze  
return squeeze(axis=axis)  
ValueError: cannot select an axis to squeeze out which has size not equal to
one  
  
Error processing trigger "frame drawn":  
ValueError: cannot select an axis to squeeze out which has size not equal to
one  
  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/numpy/core/fromnumeric.py", line 1483, in squeeze  
return squeeze(axis=axis)  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 ATI-3.8.24
OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro15,3
      Processor Name: 8-Core Intel Core i9
      Processor Speed: 2.4 GHz
      Number of Processors: 1
      Total Number of Cores: 8
      L2 Cache (per Core): 256 KB
      L3 Cache: 16 MB
      Hyper-Threading Technology: Enabled
      Memory: 32 GB
      Boot ROM Version: 1037.100.362.0.0 (iBridge: 17.16.14281.0.0,0)

Software:

    System Software Overview:

      System Version: macOS 10.15.4 (19E287)
      Kernel Version: Darwin 19.4.0
      Time since boot: 15 days 20:11

Graphics/Displays:

    Intel UHD Graphics 630:

      Chipset Model: Intel UHD Graphics 630
      Type: GPU
      Bus: Built-In
      VRAM (Dynamic, Max): 1536 MB
      Vendor: Intel
      Device ID: 0x3e9b
      Revision ID: 0x0002
      Automatic Graphics Switching: Supported
      gMux Version: 5.0.0
      Metal: Supported, feature set macOS GPUFamily2 v1

    Radeon Pro Vega 20:

      Chipset Model: Radeon Pro Vega 20
      Type: GPU
      Bus: PCIe
      PCIe Lane Width: x8
      VRAM (Total): 4 GB
      Vendor: AMD (0x1002)
      Device ID: 0x69af
      Revision ID: 0x00c0
      ROM Revision: 113-D2060I-087
      VBIOS Version: 113-D20601MA0T-016
      Option ROM Version: 113-D20601MA0T-016
      EFI Driver Version: 01.01.087
      Automatic Graphics Switching: Supported
      gMux Version: 5.0.0
      Metal: Supported, feature set macOS GPUFamily2 v1
      Displays:
        Color LCD:
          Display Type: Built-In Retina LCD
          Resolution: 2880 x 1800 Retina
          Framebuffer Depth: 24-Bit Color (ARGB8888)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: No
          Connection Type: Internal

PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8
File attachment: gray_alpha.tif

gray_alpha.tif

Attachments (1)

gray_alpha.tif (2.1 MB ) - added by goddard@… 5 years ago.
Added by email2trac

Change History (2)

by goddard@…, 5 years ago

Attachment: gray_alpha.tif added

Added by email2trac

comment:1 by Tom Goddard, 5 years ago

Component: UnassignedVolume Data
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionError opening grayscale + alpha 2D image
Note: See TracTickets for help on using tickets.