1 | initial version |
selectROI returns a rectangle, not a cropped image, as you expected.
>>> help(cv2.selectROI)
Help on built-in function selectROI:
selectROI(...)
selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval
. @brief Selects ROI on the given image.
. Function creates a window and allows user to select a ROI using mouse.
. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
.
. @param windowName name of the window where selection process will be shown.
. @param img image to select a ROI.
. @param showCrosshair if true crosshair of selection rectangle will be shown.
. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of
. selection rectangle will correspont to the initial mouse position.
. @return selected ROI or empty rect if selection canceled.
.
. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).
. After finish of work an empty callback will be set for the used window.
selectROI(img[, showCrosshair[, fromCenter]]) -> retval
. @overload
what you probably wanted is (wild guess):
(x,y,w,h) = cv2.selectROI(winname, img)
cropped = img[y,y+h : x,x+w]
2 | No.2 Revision |
selectROI returns a rectangle, not a cropped image, as you expected.image. (expectation mismatch)
>>> help(cv2.selectROI)
Help on built-in function selectROI:
selectROI(...)
selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval
. @brief Selects ROI on the given image.
. Function creates a window and allows user to select a ROI using mouse.
. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
.
. @param windowName name of the window where selection process will be shown.
. @param img image to select a ROI.
. @param showCrosshair if true crosshair of selection rectangle will be shown.
. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of
. selection rectangle will correspont to the initial mouse position.
. @return selected ROI or empty rect if selection canceled.
.
. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).
. After finish of work an empty callback will be set for the used window.
selectROI(img[, showCrosshair[, fromCenter]]) -> retval
. @overload
what you probably wanted is (wild guess):
(x,y,w,h) = cv2.selectROI(winname, img)
cropped = img[y,y+h : x,x+w]
3 | No.3 Revision |
selectROI returns a rectangle, not a cropped image. (expectation mismatch)
>>> help(cv2.selectROI)
Help on built-in function selectROI:
selectROI(...)
selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval
. @brief Selects ROI on the given image.
. Function creates a window and allows user to select a ROI using mouse.
. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
.
. @param windowName name of the window where selection process will be shown.
. @param img image to select a ROI.
. @param showCrosshair if true crosshair of selection rectangle will be shown.
. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of
. selection rectangle will correspont to the initial mouse position.
. @return selected ROI or empty rect if selection canceled.
.
. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).
. After finish of work an empty callback will be set for the used window.
selectROI(img[, showCrosshair[, fromCenter]]) -> retval
. @overload
what you probably wanted is (wild guess):
(x,y,w,h) = cv2.selectROI(winname, img)
cropped = img[y,y+h : x,x+w]
x,x+w] # both opencv ad numpy are "row-major", so y goes first
4 | No.4 Revision |
selectROI returns a rectangle, not a cropped image. (expectation mismatch)
>>> help(cv2.selectROI)
Help on built-in function selectROI:
selectROI(...)
selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval
. @brief Selects ROI on the given image.
. Function creates a window and allows user to select a ROI using mouse.
. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
.
. @param windowName name of the window where selection process will be shown.
. @param img image to select a ROI.
. @param showCrosshair if true crosshair of selection rectangle will be shown.
. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of
. selection rectangle will correspont to the initial mouse position.
. @return selected ROI or empty rect if selection canceled.
.
. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).
. After finish of work an empty callback will be set for the used window.
selectROI(img[, showCrosshair[, fromCenter]]) -> retval
. @overload
what you probably wanted is (wild guess):
(x,y,w,h) = cv2.selectROI(winname, img)
cropped = img[y,y+h : x,x+w] # both opencv ad and numpy are "row-major", so y goes first
5 | No.5 Revision |
selectROI returns a rectangle, not a cropped image. (expectation mismatch)
>>> help(cv2.selectROI)
Help on built-in function selectROI:
selectROI(...)
selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval
. @brief Selects ROI on the given image.
. Function creates a window and allows user to select a ROI using mouse.
. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).
.
. @param windowName name of the window where selection process will be shown.
. @param img image to select a ROI.
. @param showCrosshair if true crosshair of selection rectangle will be shown.
. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of
. selection rectangle will correspont to the initial mouse position.
. @return selected ROI or empty rect if selection canceled.
.
. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).
. After finish of work an empty callback will be set for the used window.
selectROI(img[, showCrosshair[, fromCenter]]) -> retval
. @overload
what you probably wanted is (wild guess):
(x,y,w,h) = cv2.selectROI(winname, img)
cropped = img[y,y+h : x,x+w] img[y:y+h , x:x+w] # both opencv and numpy are "row-major", so y goes first