Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: rgb, v2 #141

Merged
merged 37 commits into from
Mar 19, 2025
Merged
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
831119f
RGBA in Qt
gselzer Feb 19, 2025
2b3e6bc
First cut for wx, jupyter, pygfx
gselzer Feb 20, 2025
337dc28
Remove rgb example cruft
gselzer Feb 20, 2025
688db52
Enable RGBA view for (X, Y, C) images
gselzer Feb 20, 2025
b1a7086
Merge remote-tracking branch 'upstream/main' into rgb-v2
gselzer Feb 20, 2025
6a9601c
Many small fixes
gselzer Feb 20, 2025
a0501a4
Merge remote-tracking branch 'upstream/main' into rgb-v2
gselzer Feb 20, 2025
8aef4fb
examples: Use ArrayDisplayModel for RGB mode
gselzer Feb 20, 2025
9808015
Remove RGBA test dataset
gselzer Feb 21, 2025
3761b9b
Add RGBA back as a 3D RGB dataset
gselzer Feb 21, 2025
2ebbf5d
Clean up pygfx RGB changeset
gselzer Feb 21, 2025
b99f90c
pygfx: Fix conditional
gselzer Feb 21, 2025
b0a74c4
vispy: Simplify set_data dims check
gselzer Feb 21, 2025
b2243b6
Wx: Fix RGB lutview label
gselzer Feb 21, 2025
ab75df5
Enable hovering on RGB images
gselzer Feb 21, 2025
ff25b5e
Fix hovering
gselzer Feb 21, 2025
235e21a
pygfx: fix bug with image/volume cmap
gselzer Feb 21, 2025
9d24110
Merge remote-tracking branch 'upstream/main' into rgb-v2
gselzer Feb 26, 2025
5676550
Fix histograms on Jupyter, Wx
gselzer Feb 26, 2025
4f388c3
Revert process_request to a static method
gselzer Mar 14, 2025
0b688d5
ArrayView.add_lut_view: Remove default param value
gselzer Mar 14, 2025
41479b0
Vispy: Refactor Image handle dims check
gselzer Mar 14, 2025
8463d28
Add RGB magic
gselzer Mar 14, 2025
5ce2960
Merge remote-tracking branch 'upstream/main' into rgb-v2
gselzer Mar 14, 2025
f889141
style(pre-commit.ci): auto fixes [...]
pre-commit-ci[bot] Mar 14, 2025
54b9a55
Fix magic
gselzer Mar 14, 2025
f6c3d65
small changes to magic
tlambert03 Mar 17, 2025
7e04883
Merge branch 'main' into rgb-v2
tlambert03 Mar 17, 2025
951f55d
Merge branch 'main' into rgb-v2
tlambert03 Mar 17, 2025
7929362
fix segfault
tlambert03 Mar 17, 2025
84ba796
Add RGB magic test
gselzer Mar 18, 2025
a0a45f5
use any_app for test
gselzer Mar 18, 2025
2fb7de3
Resolve widget leaks
gselzer Mar 18, 2025
c04bc41
Actually fix widget leaks
gselzer Mar 18, 2025
6eb70ad
Allow leaks
gselzer Mar 18, 2025
630a3f4
Downgrade RGB cmap warnings
gselzer Mar 18, 2025
d37cec9
Fix wx/jupyter RGB LutViews
gselzer Mar 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revert process_request to a static method
gselzer committed Mar 14, 2025
commit 4f388c3401efd623263c22336a7a51ef0d54bd43
7 changes: 5 additions & 2 deletions src/ndv/models/_data_display_model.py
Original file line number Diff line number Diff line change
@@ -36,6 +36,7 @@ class DataRequest:
index: Mapping[int, Union[int, slice]]
visible_axes: tuple[int, ...]
channel_axis: Optional[int]
channel_mode: ChannelMode


@dataclass(frozen=True, **SLOTS)
@@ -240,6 +241,7 @@ def current_slice_requests(self) -> list[DataRequest]:
index=requested_slice,
visible_axes=self.normed_visible_axes,
channel_axis=c_ax,
channel_mode=self.display.channel_mode,
)
return [request]

@@ -262,7 +264,8 @@ def request_sliced_data(
for request in requests:
yield _app.submit_task(self.process_request, request)

def process_request(self, req: DataRequest) -> DataResponse:
@staticmethod
def process_request(req: DataRequest) -> DataResponse:
"""Process a data request and return the sliced data as a DataResponse."""
data = req.wrapper.isel(req.index)

@@ -273,7 +276,7 @@ def process_request(self, req: DataRequest) -> DataResponse:
data_response: dict[ChannelKey, np.ndarray] = {}
ch_ax = req.channel_axis
# For RGB and Grayscale - keep the whole array together
if self.display.channel_mode == ChannelMode.RGBA:
if req.channel_mode == ChannelMode.RGBA:
data_response["RGB"] = data.transpose(*t_dims).squeeze()
elif req.channel_axis is None:
data_response[None] = data.transpose(*t_dims).squeeze()