Issue loading a workspace with Video4Linux and Process ultrasound stream

Hi,

I’m trying to create a workspace with a Process Ultrasound Stream transforming a Video4Linux Stream input, but its behaviour is broken when I load it from a file instead of creating it manually in the UI:

  • The configured geometry is not visible anymore (purple outline)
  • I get a warning in the logs: “The geometry is fully outside the image, not cropping”

Here is a screenshot with the issue:

  • on the right: the UI after I create the workspace manually, working as expected
  • on the left: the UI when I save the workspace on the right as “snapshot”, restart IMFusion Suite, open the workspace file and start the Video4Linux stream

Please find below the saved workspace

<?xml version="1.0" encoding="utf-8"?>
<propertyfile version="1.1" name="" comment="Written by ImFusionLib, 2024-10-14 13:36:36">
	<param name="workspaceVersion">26</param>
	<property name="Datasets">
		<property name="Data">
			<param name="uid">data0</param>
			<param name="name">Dummy video device (0x0000)</param>
			<property name="Components">
				<property name="DisplayOptions2d">
					<param name="gamma">1</param>
					<param name="invert">0</param>
					<param name="maskingMode">1</param>
					<param name="maskColor">1 0 0 0.5 </param>
					<param name="windowingInitialized">0</param>
					<param name="wlInOriginalValues">1</param>
					<property name="TransferFunction">
						<param name="window">255</param>
						<param name="level">127.5</param>
						<param name="presetName"/>
						<param name="textureSize">256</param>
						<param name="mode">0</param>
					</property>
				</property>
			</property>
			<property name="Configuration">
				<param name="name">Dummy video device (0x0000)</param>
				<param name="path">/dev/video4</param>
				<param name="format">842093913</param>
				<param name="grayscale">0</param>
				<param name="resolution">1600 2560 </param>
			</property>
		</property>
		<property name="Data">
			<param name="uid">data1</param>
			<param name="name">UltrasoundStream</param>
			<property name="Components">
				<property name="DisplayOptions2d">
					<param name="gamma">1</param>
					<param name="invert">0</param>
					<param name="maskingMode">1</param>
					<param name="maskColor">1 0 0 0.5 </param>
					<param name="windowingInitialized">0</param>
					<param name="wlInOriginalValues">1</param>
					<property name="TransferFunction">
						<param name="window">255</param>
						<param name="level">127.5</param>
						<param name="presetName"/>
						<param name="textureSize">256</param>
						<param name="mode">0</param>
					</property>
				</property>
			</property>
			<property name="Configuration">
				<property name="processing">
					<property name="parameters">
						<param name="applyCrop">1</param>
						<param name="applyMask">1</param>
						<param name="applyDepth">1</param>
						<param name="depth">150</param>
						<param name="removeColorThreshold">0</param>
						<param name="inpaint">0</param>
						<param name="extraCrop">50 50 0 0 </param>
						<param name="extraCropAbsolute">1</param>
						<property name="frameGeometry">
							<property name="FrameGeometrySector">
								<param name="offset">799.5 152 </param>
								<param name="isTopDown">1</param>
								<param name="indicatorPosition">0</param>
								<param name="coordinateSystem">0</param>
								<param name="shortRadius">14.56</param>
								<param name="longRadius">1547.4314132489</param>
								<param name="openingAngle">38.6148128081963</param>
								<param name="bottomCurvature">0.984131898971433</param>
							</property>
						</property>
					</property>
				</property>
			</property>
		</property>
	</property>
	<property name="Interface">
		<param name="outputUids">"data0" "data1" </param>
		<param name="inputUids"/>
	</property>
	<property name="Algorithms">
		<property name="VideoForLinux.IO.Video4Linux_Stream">
			<param name="name">Dummy video device (0x0000)</param>
			<param name="path">/dev/video4</param>
			<param name="format">842093913</param>
			<param name="grayscale">0</param>
			<param name="resolution">1600 2560 </param>
			<param name="execute">1</param>
			<param name="keepControllerOpen">1</param>
			<param name="inputUids"/>
			<param name="outputUids">"data0" </param>
		</property>
		<property name="LiveUS.ProcessUltrasoundStream">
			<param name="execute">1</param>
			<param name="keepControllerOpen">1</param>
			<param name="inputUids">"data0" </param>
			<param name="outputUids">"data1" </param>
			<property name="processing">
				<property name="parameters">
					<param name="applyCrop">1</param>
					<param name="applyMask">1</param>
					<param name="applyDepth">1</param>
					<param name="depth">150</param>
					<param name="removeColorThreshold">0</param>
					<param name="inpaint">0</param>
					<param name="extraCrop">50 50 0 0 </param>
					<param name="extraCropAbsolute">1</param>
					<property name="frameGeometry">
						<property name="FrameGeometrySector">
							<param name="offset">799.5 152 </param>
							<param name="isTopDown">1</param>
							<param name="indicatorPosition">0</param>
							<param name="coordinateSystem">0</param>
							<param name="shortRadius">14.56</param>
							<param name="longRadius">1547.4314132489</param>
							<param name="openingAngle">38.6148128081963</param>
							<param name="bottomCurvature">0.984131898971433</param>
						</property>
					</property>
				</property>
			</property>
		</property>
	</property>
	<property name="Display">
		<param name="layoutMode">0</param>
		<param name="focusedView">0</param>
		<param name="viewOrder">0 1 2 3 4 </param>
		<property name="Views">
			<property name="0">
				<param name="isVisible">1</param>
				<param name="interpolation">1</param>
				<param name="flip">1</param>
				<param name="blendingMode">1</param>
				<param name="zoom">1.1</param>
				<param name="showZoom">1</param>
				<param name="showIn3D">1</param>
				<param name="viewMatrix">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 </param>
				<param name="sliceMatrix">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 </param>
				<param name="showOrientationMarkers">0</param>
				<param name="displayOptionsSource">1</param>
				<param name="sliceThickness">0</param>
			</property>
			<property name="1">
				<param name="isVisible">0</param>
				<param name="interpolation">1</param>
				<param name="flip">1</param>
				<param name="blendingMode">1</param>
				<param name="zoom">1</param>
				<param name="showZoom">1</param>
				<param name="showIn3D">1</param>
				<param name="viewMatrix">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 </param>
				<param name="sliceMatrix">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 </param>
				<param name="showOrientationMarkers">0</param>
				<param name="displayOptionsSource">1</param>
				<param name="sliceThickness">0</param>
			</property>
			<property name="2">
				<param name="isVisible">0</param>
				<param name="interpolation">1</param>
				<param name="flip">1</param>
				<param name="blendingMode">1</param>
				<param name="zoom">1</param>
				<param name="showZoom">1</param>
				<param name="showIn3D">1</param>
				<param name="viewMatrix">0 0 -1 0 1 0 0 0 0 -1 0 0 0 0 0 1 </param>
				<param name="sliceMatrix">0 0 -1 0 1 0 0 0 0 -1 0 0 0 0 0 1 </param>
				<param name="showOrientationMarkers">0</param>
				<param name="displayOptionsSource">1</param>
				<param name="sliceThickness">0</param>
			</property>
			<property name="3">
				<param name="isVisible">0</param>
				<param name="interpolation">1</param>
				<param name="flip">1</param>
				<param name="blendingMode">1</param>
				<param name="zoom">1</param>
				<param name="showZoom">1</param>
				<param name="showIn3D">1</param>
				<param name="viewMatrix">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 </param>
				<param name="sliceMatrix">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 </param>
				<param name="showOrientationMarkers">0</param>
				<param name="displayOptionsSource">1</param>
				<param name="sliceThickness">0</param>
			</property>
			<property name="4">
				<param name="isVisible">0</param>
				<param name="volumeRendererName">General Purpose Volume Renderer</param>
				<param name="sceneCenter">0 0 0 </param>
				<param name="displayOptionsSource">1</param>
				<param name="ssaoMode">0</param>
				<property name="Camera">
					<param name="poseMatrix">1 0 0 -0 0 -0 1 0 -0 -1 0 -206.069964513654 0 0 -0 1 </param>
					<param name="mode">0</param>
					<param name="principalPoint">0.5 0.5 </param>
					<param name="focalLength">1.37373870972731 1.37373870972731 </param>
					<param name="frustumHeight">100</param>
				</property>
				<property name="VolumeRenderer">
					<param name="maxVolumesToDisplay">4</param>
					<param name="showDeformations">0</param>
					<param name="samplesPerVoxel">1</param>
					<param name="mode">4</param>
					<param name="ambientAttenuationDistance">0</param>
				</property>
			</property>
		</property>
		<property name="VisibleData">
			<property name="0">
				<param name="visible">"data1" </param>
			</property>
			<property name="1">
				<param name="visible"/>
			</property>
			<property name="2">
				<param name="visible"/>
			</property>
			<property name="3">
				<param name="visible"/>
			</property>
			<property name="4">
				<param name="visible"/>
			</property>
		</property>
	</property>
</propertyfile>

Best Regards

1 Like

Hi Florent, welcome to the forum!

I am assuming you wish to save the workspace after configuring the capture and then later load that workspace to perform live acquisitions with that configuration already done. Is that correct?

In that case, the “Replay” workspace is the correct choice.
https://docs.imfusion.com/suite/Concepts/workspaces.html#saving-workspaces

Let me know if that helps!

Hi,

I am assuming you wish to save the workspace after configuring the capture and then later load that workspace to perform live acquisitions with that configuration already done. Is that correct?

That is right

I actually tried both modes (Replay and Snapshot) but I get the same result.

I’d like to replicate this. Could you let me know which version of the Suite you are running? (Help → About)

Thanks, I’m using version 3.8.16.

Hi Florent,

Looks like this is a bug that was fixed in the meantime. We’ve just tried such a workspace on a current version of the Suite, and it works fine. I’m closing the thread now, since for everyone else on the forum with a recent version, it’s ok :slightly_smiling_face:

I’ll write you a DM regarding a software upgrade.

Cheers,
Oliver

1 Like