mirror of http://192.168.1.51:8099/lmh188/twain3.0
44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
|
#include "ImageApplyDispersion.h"
|
||
|
|
||
|
CImageApplyDispersion::CImageApplyDispersion():
|
||
|
m_kernal_b(3, 1, CV_32FC1)
|
||
|
, m_kernal_g(3, 1, CV_32FC1)
|
||
|
, m_kernal_r(3, 1, CV_32FC1)
|
||
|
{
|
||
|
m_kernal_b.at<float>(0, 0) = 0.15f;
|
||
|
m_kernal_b.at<float>(1, 0) = 1.15f;
|
||
|
m_kernal_b.at<float>(2, 0) = -0.3f;
|
||
|
|
||
|
m_kernal_g.at<float>(0, 0) = 0.806f;
|
||
|
m_kernal_g.at<float>(1, 0) = 0.484f;
|
||
|
m_kernal_g.at<float>(2, 0) = -0.3f;
|
||
|
|
||
|
m_kernal_r.at<float>(0, 0) = 0.484f;
|
||
|
m_kernal_r.at<float>(1, 0) = 0.806f;
|
||
|
m_kernal_r.at<float>(2, 0) = -0.3f;
|
||
|
}
|
||
|
|
||
|
CImageApplyDispersion::~CImageApplyDispersion()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void CImageApplyDispersion::apply(cv::Mat& pDib, int side)
|
||
|
{
|
||
|
(void)side;
|
||
|
|
||
|
if (pDib.channels() != 3) return;
|
||
|
|
||
|
cv::Mat bgr[3];
|
||
|
cv::split(pDib, bgr);
|
||
|
|
||
|
cv::filter2D(bgr[0], bgr[0], bgr[0].depth(), m_kernal_b);
|
||
|
cv::filter2D(bgr[1], bgr[1], bgr[1].depth(), m_kernal_g);
|
||
|
cv::filter2D(bgr[2], bgr[2], bgr[2].depth(), m_kernal_r);
|
||
|
|
||
|
cv::merge(bgr, 3, pDib);
|
||
|
}
|
||
|
|
||
|
void CImageApplyDispersion::apply(std::vector<cv::Mat>& mats, bool isTwoSide)
|
||
|
{
|
||
|
}
|