A clean image in a camera configuration utility does not prove that another acquisition runtime has the required license or services. If the runtime’s own viewer also shows a watermark, investigate that shared acquisition path before changing Python. This troubleshooting sequence helps you locate where the marking appears, verify authorized runtime operation, and confirm that the application receives clean image data—not merely a clean preview.
Separate the acquisition paths first
The configuration utility, the runtime viewer, and your application may reach the same camera through different software components. They can use different drivers, configuration files, license checks, and display layers.
Treat them as separate test paths until you establish otherwise. A successful camera connection proves connectivity for that path; it does not establish entitlement for every installed acquisition package.
Start with these observations, working from the shared runtime toward application-specific causes:
| Observation | First hypothesis to test | Useful next check |
|---|---|---|
| Configuration utility is clean; runtime viewer and application are marked | Shared runtime licensing, service, or driver issue | Inspect documented license status and required services |
| Runtime viewer is clean; application is marked | Different loaded runtime, configuration, or application overlay | Compare library locations and inspect the acquired buffer |
| Preview is marked; saved buffer data is clean | Display-layer annotation | Check documented viewer and display settings |
| Both the configuration utility and runtime output are marked | Marking may originate earlier in the path | Compare saved images and review documented camera settings |
| Operation changes after a restart | Startup dependency, service readiness, or changing configuration | Correlate service and application timestamps |
These are diagnostic branches, not universal meanings for a watermark. Only the software documentation can establish what a particular marking indicates.
For the broader distinction between direct camera access and an intermediate acquisition package, use the camera acquisition software compatibility guide. Keep that distinction clear throughout the investigation.
Reproduce the symptom without the Python application
Use the viewer supplied with the intended acquisition runtime, obtained through the manufacturer or its authorized distributor. Select the same configured acquisition device that your application is supposed to open.
Close other acquisition applications first unless simultaneous access is explicitly supported. Otherwise, an exclusive-access conflict can introduce another fault and obscure the original symptom.
Run a small, repeatable comparison:
- Record the selected camera, interface, configuration file, and runtime package for each path.
- Capture images in the configuration utility, then close its connection.
- Open the intended acquisition configuration in the runtime viewer and capture again.
- Run the smallest application that acquires and saves an image, without processing or drawing overlays.
- Compare the saved files as well as the displayed previews.
For example, collect 20 frames through each of 3 paths: 3 × 20 = 60 frames. This is a convenient diagnostic sample, not proof against intermittent faults. Use the same scene so that text, logos, or reflections on the inspected object cannot be mistaken for software marking.
Where the API supports it, save the acquired buffer before annotation, scaling, or display conversion. Follow the API’s documented buffer-lifetime rules; inspecting released memory creates a separate problem. The camera frame memory lifetime guide explains that distinction.
If the runtime viewer reproduces the watermark, Python is no longer necessary to reproduce the fault. Resolve the shared runtime condition first.
Verify the exact license entitlement
Open the license utility documented for the runtime that actually acquires the images. Do not rely solely on an activation message shown in a separate configuration application.
Check the entitlement at the level the documentation describes:
- Does it cover acquisition, rather than only configuration or another software component?
- Does it cover the selected driver or acquisition module?
- Does it apply to the installed runtime release?
- Is its status valid under the current user session and deployment arrangement?
- If device-bound, does the recognized device match the documented licensed identity?
- If network licensing is used, can the documented client reach the authorized license service?
Some packages distinguish between an entitlement being installed and that entitlement being available to the running process. Record the exact status message instead of translating every successful activation into “the runtime is licensed.”
For a device-bound entitlement, compare identifiers using the vendor’s documented procedure. Hardware replacement, migration, or a changed interface configuration may require authorized reactivation or transfer. Do not alter identifiers or copy activation material to make a different device appear licensed.
If the entitlement is missing, expired, incompatible, or assigned elsewhere, obtain the correct license or request a documented transfer. A watermark associated with licensing is not an image-processing defect to erase.
Check the runtime services the vendor requires
A valid entitlement may still depend on a management or licensing service. Check only the services named in the installed package’s documentation; service names and dependencies vary between products and releases.
In the operating system’s service manager, inspect the documented service status, startup configuration, and recent failure events. Then compare those timestamps with the acquisition attempt. A running process alone does not prove that its initialization or license communication succeeded.
Use this sequence:
- Confirm that the service belongs to the installed runtime package.
- Check whether it is running and whether the documentation requires it for this acquisition path.
- Read its diagnostic log or event entries for startup, dependency, and entitlement errors.
- Have an authorized administrator start or repair it through the documented procedure.
- Restart the viewer or application afterward if the documentation requires a new license check.
Do not launch an unfamiliar executable merely because its name resembles a service. Use the official service registration, repair, or installation procedure. Obtain replacement installers and documentation only from the manufacturer or its authorized distributors.
A service that starts manually but fails after host startup needs a startup diagnosis, not repeated manual intervention. Investigate documented dependencies, account permissions, and startup errors. Do not apply arbitrary delays or change the service account to a privileged account without vendor guidance.
Avoid disabling endpoint protection, changing broad firewall policies, or opening unrestricted network access as a shortcut. If a documented communication requirement is blocked, arrange a narrowly scoped, approved change.
Confirm the driver configuration and loaded runtime
The application must open the intended acquisition driver and its configuration. Selecting the same physical camera is not enough if the utility and application use different software routes.
Compare the runtime viewer and application on these points:
- Selected acquisition module and device identifier.
- Configuration file location and modification time.
- Runtime library version and installation directory.
- Process architecture and supported operating-system environment.
- User context and access to the documented configuration location.
- License status reported while the process is running.
Export or back up a working configuration before changing it. Recreate a device entry only when the vendor’s troubleshooting procedure calls for that step. Repeatedly deleting and rediscovering the camera does not explain an entitlement or service failure.
If the software provides a supported diagnostic command for loaded library paths, use it. An application can load a different installed runtime from the one used by the viewer, particularly when multiple releases coexist.
Do not copy libraries between installation folders to force a match. Use the official installer, supported environment configuration, or documented repair procedure.
For import and architecture failures, the Python wrapper DLL loading guide provides a separate diagnostic path. Those failures deserve attention when the evidence shows loading errors—not simply because the image contains a watermark.
Change Python only when the evidence points there
Changing the interpreter is justified when the wrapper’s support matrix, package metadata, or error messages identify an incompatibility. It is not a targeted response when a non-Python viewer reproduces the same marking.
Use this decision table to keep the next action tied to evidence:
| Evidence | Appropriate next action |
|---|---|
| Runtime viewer and Python output share the watermark | Continue with shared licensing, services, and acquisition configuration |
| Runtime viewer is clean; Python loads a different runtime | Correct the documented library and environment configuration |
| Wrapper does not import or reports an architecture mismatch | Check the supported interpreter, package build, and process architecture |
| Acquired buffer is clean; only the application display is marked | Inspect annotation and display code |
| A supported minimal example is clean; the full application is marked | Compare initialization, configuration selection, and processing stages |
When interpreter compatibility is genuinely in question, follow the GenICam Python interpreter matching guide. Create a separate supported environment rather than changing a working deployment in place.
Change one variable at a time and retain the original environment details. Otherwise, a service restart during reinstallation can appear to prove that a Python downgrade fixed the issue, even though the service state was the actual difference.
Choose hardware without assuming software entitlements
Replacing the camera is usually premature when the same device produces clean images through one path and marked images through another. First establish whether the intended software route supports the existing hardware and has the required entitlement.
When a new project does require area scan cameras, separate interface selection from software licensing. The camera finder helps compare hardware attributes; acquisition-runtime compatibility still needs confirmation from the relevant documentation.
For interface-oriented catalog examples, the LS-CMR-0053 uses GigE.
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- 12 MP
The LS-CMR-0166 uses USB3.
- Sensor format
- 1/1.7"
- Interface
- USB3
- Resolution
- 12 MP
- Shutter
- Rolling
These are hardware examples, not a claim that either includes or resolves a particular third-party software license. Confirm the intended runtime, supported driver, and entitlement before choosing an interface or placing an order.
The same separation applies to vision controllers. Camera ports and processing hardware do not, by themselves, establish entitlement for your chosen acquisition package. Check the exact controller configuration and software documentation rather than inferring licensing from the enclosure or port count.
Start a hardware selection through the camera configurator only after recording the software requirements. That order prevents an unnecessary hardware change from becoming another troubleshooting variable.
Verify recovery through the intended runtime
A successful repair should survive the deployment’s normal startup sequence and produce clean acquired data. Verify it during commissioning or an approved maintenance window, without interrupting a running inspection unexpectedly.
Use this acceptance checklist:
- License state: the documented utility reports the required entitlement as available to the intended runtime.
- Service state: required services start through their supported mechanism and show no relevant startup errors.
- Viewer test: the runtime viewer acquires clean saved images through the intended configuration.
- Application test: the minimal application receives clean buffers before display or processing.
- Deployment context: acquisition works under the account and startup method actually used in production.
- Restart test: the documented startup sequence works again after an approved host restart.
- Inspection validation: the normal inspection passes its established image-quality and decision checks.
Repeat the original comparison so that the before-and-after evidence is directly comparable. For an initial commissioning check, repeat acquisition after 2 application launches and 2 approved host restarts. This is a useful repeatability check, not a reliability guarantee.
If the fault remains, prepare the runtime version, loaded library paths, acquisition configuration, exact license status, service events, and the comparison table of affected paths. Share keys, credentials, and sensitive identifiers only through the vendor’s approved support process when specifically required.
For acquisition entitlement or service faults, contact the runtime vendor through its official support channel. For camera-interface selection or hardware compatibility questions, send your documented requirements through technical support before changing equipment.
Questions
Why can a configuration utility show clean images while the application shows a watermark?
The applications may use different acquisition modules and licensing mechanisms. A configuration utility can communicate successfully while the intended runtime has an unavailable entitlement, a failed service, or a different configuration. Compare saved images through each path before treating the camera itself as faulty.
Should I downgrade Python to remove a camera SDK watermark?
Not as the first response when the runtime’s own viewer reproduces the marking. That observation points toward shared acquisition components rather than Python alone. Change interpreters only when the wrapper’s documented compatibility requirements or a specific loading error support that action.
Does an activated license prove that acquisition is fully licensed?
Not necessarily. Activation, entitlement scope, device assignment, and availability to a running process can be separate checks. Use the runtime’s documented license utility to verify the required acquisition entitlement and any associated service dependencies for the installed release.
How do I tell whether the watermark is in the image buffer or only the preview?
Save an image directly from the acquired buffer using the supported API, before adding annotations or display conversions. Compare it with a screenshot of the viewer. Respect buffer ownership and lifetime rules so that invalid memory does not introduce misleading image artifacts.
Will replacing the camera fix an acquisition watermark?
It is usually premature if one acquisition path already produces clean images. First verify the selected driver, runtime entitlement, services, and loaded libraries. Hardware replacement makes sense only when documented compatibility or an independently confirmed hardware fault requires it.

