//图片翻转
void COpenCVTestDlg::OnCbnSelchangeComboFlip()
{
if (m_comboFlip.GetCurSel() == -1)
return;
if (!m_srcMatImg.empty())
{
CString szFlip;
m_comboFlip.GetLBText(m_comboFlip.GetCurSel(), szFlip);
if (szFlip == L"水平翻转")
{
//水平方向翻转 参数值为1 参数>0位水平翻转
cv::flip(m_srcMatImg, m_dstMatImg, 1);
}
else if (szFlip == L"垂直翻转")
{
//垂直方向翻转 参数值为0 参数=0位垂直翻转
cv::flip(m_srcMatImg, m_dstMatImg, 0);
}
else
{
//水平和垂直方向同时翻转 参数值为-1 参数<0位水平垂直翻转
cv::flip(m_srcMatImg, m_dstMatImg, -1);
}
}
}
void flip(InputArray src, OutputArray dst, int flipCode);
src:是要处理的原始图像
dst:是和原始图像具有同样大小、类型的目标图像
flipCode:是旋转类型
=0,x轴方向翻转
>0,y轴方向翻转
<0,x轴、y轴同时翻转
该函数中,目标像素点与原始像素点的关系表述为:
Y方向翻转
cv::flip(m_srcImage, m_dstImage, 1);
X方向翻转
cv::flip(m_srcImage, m_dstImage, 0);
XY两方向翻转
cv::flip(m_srcImage, m_dstImage, -1);
原图
翻转
还有个人自己写的翻转变换请关注公众号《Qt学视觉》