mirror of
https://github.com/opencv/opencv.git
synced 2025-06-09 18:43:05 +08:00
Merge pull request #16626 from firebladed:firebladed-v4l2_pix_fmt_y12
V4L2: Add V4L2_PIX_FMT_Y12 (12 bit grey) support
This commit is contained in:
parent
8c24af66bd
commit
f00607c8ac
@ -262,6 +262,10 @@ make & enjoy!
|
|||||||
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ')
|
#define V4L2_PIX_FMT_Y10 v4l2_fourcc('Y', '1', '0', ' ')
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef V4L2_PIX_FMT_Y12
|
||||||
|
#define V4L2_PIX_FMT_Y12 v4l2_fourcc('Y', '1', '2', ' ')
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Defaults - If your board can do better, set it here. Set for the most common type inputs. */
|
/* Defaults - If your board can do better, set it here. Set for the most common type inputs. */
|
||||||
#define DEFAULT_V4L_WIDTH 640
|
#define DEFAULT_V4L_WIDTH 640
|
||||||
#define DEFAULT_V4L_HEIGHT 480
|
#define DEFAULT_V4L_HEIGHT 480
|
||||||
@ -561,6 +565,7 @@ bool CvCaptureCAM_V4L::autosetup_capture_mode_v4l2()
|
|||||||
V4L2_PIX_FMT_JPEG,
|
V4L2_PIX_FMT_JPEG,
|
||||||
#endif
|
#endif
|
||||||
V4L2_PIX_FMT_Y16,
|
V4L2_PIX_FMT_Y16,
|
||||||
|
V4L2_PIX_FMT_Y12,
|
||||||
V4L2_PIX_FMT_Y10,
|
V4L2_PIX_FMT_Y10,
|
||||||
V4L2_PIX_FMT_GREY,
|
V4L2_PIX_FMT_GREY,
|
||||||
};
|
};
|
||||||
@ -654,6 +659,7 @@ void CvCaptureCAM_V4L::v4l2_create_frame()
|
|||||||
size.height = size.height * 3 / 2; // "1.5" channels
|
size.height = size.height * 3 / 2; // "1.5" channels
|
||||||
break;
|
break;
|
||||||
case V4L2_PIX_FMT_Y16:
|
case V4L2_PIX_FMT_Y16:
|
||||||
|
case V4L2_PIX_FMT_Y12:
|
||||||
case V4L2_PIX_FMT_Y10:
|
case V4L2_PIX_FMT_Y10:
|
||||||
depth = IPL_DEPTH_16U;
|
depth = IPL_DEPTH_16U;
|
||||||
/* fallthru */
|
/* fallthru */
|
||||||
@ -1578,6 +1584,13 @@ void CvCaptureCAM_V4L::convertToRgb(const Buffer ¤tBuffer)
|
|||||||
cv::cvtColor(temp, destination, COLOR_GRAY2BGR);
|
cv::cvtColor(temp, destination, COLOR_GRAY2BGR);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
case V4L2_PIX_FMT_Y12:
|
||||||
|
{
|
||||||
|
cv::Mat temp(imageSize, CV_8UC1, buffers[MAX_V4L_BUFFERS].start);
|
||||||
|
cv::Mat(imageSize, CV_16UC1, currentBuffer.start).convertTo(temp, CV_8U, 1.0 / 16);
|
||||||
|
cv::cvtColor(temp, destination, COLOR_GRAY2BGR);
|
||||||
|
return;
|
||||||
|
}
|
||||||
case V4L2_PIX_FMT_Y10:
|
case V4L2_PIX_FMT_Y10:
|
||||||
{
|
{
|
||||||
cv::Mat temp(imageSize, CV_8UC1, buffers[MAX_V4L_BUFFERS].start);
|
cv::Mat temp(imageSize, CV_8UC1, buffers[MAX_V4L_BUFFERS].start);
|
||||||
|
Loading…
Reference in New Issue
Block a user