Ask Your Question

Fnoop's profile - activity

2020-08-31 21:21:29 -0600 received badge  Famous Question (source)
2020-05-15 03:58:28 -0600 asked a question Correct method to specify -mfpu compile flag?

Correct method to specify -mfpu compile flag? Hi, I raised an issue in github for this because I thought it might be a b

2019-02-18 02:47:52 -0600 received badge  Notable Question (source)
2018-06-06 03:33:32 -0600 received badge  Popular Question (source)
2017-04-27 04:56:59 -0600 received badge  Good Question (source)
2017-01-12 14:07:04 -0600 received badge  Enthusiast
2017-01-10 11:13:43 -0600 commented question Interactive calibration frame rejected

Doh, can't believe I missed that option. Thanks, will try saving and see how I get on!

2017-01-10 10:19:46 -0600 commented question Interactive calibration frame rejected

Thanks for the responses, I've edited the main question again with updates.

2017-01-07 05:53:38 -0600 commented question Interactive calibration frame rejected

Bit of success, I'm now getting successful captures in better light conditions. But I can't get a successful calibration, it never ends. I've edited the main question with more details and screenshot.

2017-01-07 05:50:56 -0600 received badge  Editor (source)
2017-01-07 02:34:38 -0600 commented question Interactive calibration frame rejected

Thanks for the response :) The print looks to be the same ratio, the only difference is the white border around the edges isn't as large as they expanded the pattern most of the way to the edge. The problem with the resolution is I don't know what the camera is returning - I assume that the calibrator is capturing using v4l2 and setting the resolution. My camera usually returns 640x480 by default but clearly the calibrator is capturing at a much higher widescreen format.

2017-01-06 04:19:42 -0600 commented question Interactive calibration frame rejected

I'm guessing the --sz parameter is in mm so I've measured the distance between center of adjacent squares (one aruco, one black) on the pattern which is 65mm and used that. So --sz=65. Still getting frame rejected, it's as soon as I get all the pattern squares into view and it recognises all the aruco IDs, it flashes white and says frame rejected. All this rejection is harshing my buzz :(

2017-01-06 03:12:50 -0600 received badge  Nice Question (source)
2017-01-05 20:23:24 -0600 received badge  Student (source)
2017-01-05 15:34:52 -0600 asked a question Interactive calibration frame rejected

So I'm trying to use opencv_interactive-calibration with the following parameters: opencv_interactive-calibration -ci=4 -h=5 -w=8 --pf=defaultConfig.xml --of=cameraParameters.xml -t=charuco

My config looks like this:

<?xml version="1.0"?>
<opencv_storage>
<charuco_dict>14</charuco_dict>
<charuco_square_lenght>80</charuco_square_lenght>
<charuco_marker_size>50</charuco_marker_size>
<calibration_step>1</calibration_step>
<max_frames_num>30</max_frames_num>
<min_frames_num>10</min_frames_num>
<solver_eps>1e-7</solver_eps>
<solver_max_iters>30</solver_max_iters>
<fast_solver>0</fast_solver>
<frame_filter_conv_param>0.1</frame_filter_conv_param>
<camera_resolution>1280 720</camera_resolution>
</opencv_storage>

I'm using a charuco pattern like this: image description

The pattern is printed and laminated on A3. It was created like this: ./create_charuco -w=8 -h=5 --ml=50 --sl=80 -d=14 ~/charuco-pattern.png so marker length 50 and square length 80. Obviously if this is pixels it's now meaningless as it's been blown up through printing to A3, but I'm guessing (naively, hopefully) that this is a ratio rather than an absolute size in pixels? I have no idea what --sz (value:16.3) parameter means in terms of scale or units, or if it's needed for charuco pattern.

So the trouble I have is that running the interactive calibrator brings up a window (very slow, over ssh/X) that recognises the aruco symbols when presented and draws lots of blue lines off the right hand edge of the screen, and when you get the entire pattern into frame it gives a white flash and says 'Frame rejected' every time, over and over. It gives no further info so I have absolutely no idea where to go from here, I can't see any kind of debug/log output and it's not producing anything into cameraParameters.xml.

The camera_resolution config setting, what is that for exactly? As the calibrator seems to control the camera through v4l2 (I'm specifying video4) I assume it's setting the resolution - my default resolution for my camera is 640x480 but the preview window seems to be much larger, I'm guessing at least 1280x720. Would be nice to do it in 640x480 somehow as that is the resolution it will always capture in real use.

Help please :)

Also, bonus points if anyone can answer if this calibrator will provide necessary calibration for depth (ie range) measurement, or if is it just for distortion?

Edit (after a couple more days of frustration): OK, so it appears that the detector is sensitive to ambient light levels, when I've had some free time during the daytime to try it I'm getting successful captures. I'm still getting wierd blue lines off the right hand side of the screen when trying the calibration on an embedded linux computer (odroid) but it is accepting captures now. Wierd, in that in the lower light levels it was still happily detecting all the patterns. I've also tried using inbuilt camera on macbook and plugging my oCam usb3 camera into the macbook and tried the interactive calibrator. I get successful captures and mostly fill the green ghosty things, but it never ... (more)

2017-01-05 11:53:23 -0600 commented answer calibration images?

@StevenPuttemans - sure will do, if I ever get anywhere. After eventually finding the interactive installer now I'm getting the aruco symbols recognised but every frame rejected.

2017-01-04 07:11:21 -0600 commented answer calibration images?

OK I've compiled aruco/create_board_charuco and created a board as similar as possible to the one shown in the aruco calibration doc: ./create_charuco -w=8 -h=5 --ml=50 --sl=80 -d=14 ~/charuco-pattern.png No idea if this will work, will update with results.

2017-01-04 05:55:11 -0600 commented answer calibration images?

Thanks, that would be useful info on the calibration page. The charuco image is heavily pixelated/compressed and isn't the recommended one for calibration (aruco signs on the corners).

2017-01-04 05:36:49 -0600 commented question calibration images?

Sorry, should have said patterns:

Supported patterns:

Black-white chessboard
Asymmetrical circle pattern
Dual asymmetrical circle pattern
chAruco (chessboard with Aruco markers)
2017-01-04 05:19:47 -0600 asked a question calibration images?

Where are the calibration images referenced here? http://docs.opencv.org/3.2.0/d7/d21/t...

2017-01-04 05:07:16 -0600 answered a question gstreamer output with VideoWriter?

I cannot for the life of me work out how to get this working in python. I have got it working in c++:

cv::VideoWriter writer;
writer.open("appsrc ! autovideoconvert ! v4l2video1h264enc extra-controls=\"encode,h264_level=10,h264_profile=4,frame_level_rate_control_enable=1,video_bitrate=2000000\" ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=192.168.x.x port=5000 sync=false", 0, 30, cv::Size(640, 480 ), true);

Exactly the same thing in python either gives vague errors or just sits there doing nothing.

2016-06-11 02:47:38 -0600 asked a question gstreamer output with VideoWriter?

Hi, is it possible to use VideoWriter to output directly to gstreamer, something like below? It would be a lot simpler than pushing buffers to appsrc, which I can't find any working code for (python, gstreamer 1.0).

#!/usr/bin/python
import time, os, sys
import cv2
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
stream = cv2.VideoWriter("appsrc ! x264enc ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=192.168.1.x port=5000 sync=false", fourcc, 30, (1280,720))
capture = cv2.VideoCapture("v4l2src device=/dev/video0 ! image/jpeg,width=1280,height=720,framerate=30/1 ! decodebin ! videoconvert ! appsink")
while True:
    ret,frame=capture.read()
    stream.write(frame)
capture.release()
stream.release()
cv2.destroyAllWindows()