I Set the width and height of the image to get a single image.
camera = arv_camera_new (argc > 1 ? argv[1] : NULL, NULL);
arv_camera_set_region (camera, 0, 0, 5000, 3000, NULL);
buffer = arv_camera_acquisition (camera, 0, NULL);
if (ARV_IS_BUFFER (buffer) && arv_buffer_get_status (buffer) == ARV_BUFFER_STATUS_SUCCESS)
{
printf ("Image successfully acquired\n");
}
else
printf ("Failed to acquire a single image\n");
This keeps failing. Is this interface not able to set such a high image size.
Hi @songwenping ,
Thanks for your interest in Aravis.
There is no hard limit on how big an image can be. The only limit is the capability of your camera.
May be there is some trouble during the transfer. Is your camera an GigEVision or a USB3Vision device ?
Did you try to set ARV_DEBUG=all
before running your program ? What is the console output when debug is enabled ?
Hi Emmanuel,
Thanks for your response! I’ve used ‘./arv-camera-test-0.8 -d stream’ with the image size of 1000x900.Fortunately everything works.
vendor name = Daheng Imaging
model name = MER-2000-5GM
device serial number = LT0190111093
image width = 1000
image height = 900
exposure = 4500 µs
gain = 0 dB
payload = 900032 bytes
gv n_stream channels = 1
gv current channel = 0
gv packet delay = 0 ns
[15:47:45.327] 🅸 stream> [GvStream::finalize] n_completed_buffers = 66
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_failures = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_underruns = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_timeouts = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_aborteds = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_missing_frames = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_received_packets = 40722
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_missing_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_error_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_ignored_packets = 0
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resend_requests = 94
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resent_packets = 94
[15:47:45.328] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_resend_disabled = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 0
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_transferred_bytes = 59729208
[15:47:45.329] 🅸 stream> [GvStream::finalize] n_ignored_bytes = 0
[15:47:45.329] 🅸 stream> [Stream::finalize] Flush 50 buffer[s] in input queue
[15:47:45.329] 🅸 stream> [Stream::finalize] Flush 0 buffer[s] in output queue
But if Change the size of the image to 5000 X 3000,it gets bad。
vendor name = Daheng Imaging
model name = MER-2000-5GM
device serial number = LT0190111093
image width = 5000
image height = 3000
exposure = 4500 µs
gain = 0 dB
payload = 15000032 bytes
gv n_stream channels = 1
gv current channel = 0
gv packet delay = 0 ns
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_completed_buffers = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_failures = 28
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_underruns = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_timeouts = 28
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_aborteds = 1
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_missing_frames = 2
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_size_mismatch_errors = 0
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_received_packets = 15053
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_missing_packets = 285449
[16:09:03.180] 🅸 stream> [GvStream::finalize] n_error_packets = 2
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_ignored_packets = 30
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_requests = 1685409
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resent_packets = 7611
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_ratio_reached = 16
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_resend_disabled = 2
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_duplicated_packets = 147
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_transferred_bytes = 22081772
[16:09:03.181] 🅸 stream> [GvStream::finalize] n_ignored_bytes = 240
[16:09:03.181] 🅸 stream> [Stream::finalize] Flush 49 buffer[s] in input queue
[16:09:03.181] 🅸 stream> [Stream::finalize] Flush 1 buffer[s] in output queue
I found that if the image size is larger than 4K resolution。There will be a lot of dropped frames。Can you give some advice to solve this。
Even at lower resolution there are resent packages. In the higher it seems even worse clogging up the system.
Is it possibly a cable or network issue?
@songwenping , on what machine are you running Aravis ?
Did you try to limit the framerate ?
I’m using Centos6.Yes,I’ve also changed the framerate.But It doesn’t seems to work.