c++ - opencv库中的水平翻转

标签 c++ opencv

我有以下问题。我正在尝试进行水平翻转,我的代码正在编译,但之后出现运行时错误。我在下面发布了我的代码,以及发生错误的 mat.inl.hpp header 的某些部分。

int HorizontalFlip(Mat img)
{
Mat img4 = img.clone();
for (int i = 0; i < img4.rows; i++)
{
    for (int j = 0; j < ceil(img4.cols / 2); j++)
    {
        Vec3b &intensity = img4.at<Vec3b>(i, j);
        Vec3b &intensity2 = img4.at<Vec3b>(i, img4.cols);
        Vec3b bufor;
        int k = ceil(img4.cols / 2);
        for (int channel = 0; channel < img4.channels(); channel++)
        {
            do 
            {
                bufor = intensity;
                intensity = intensity2;
                intensity2 = bufor;
            } while (ceil(img4.cols / 2) < k);
        }
    }
}
namedWindow("Horizontal Flip", WINDOW_AUTOSIZE);
imshow("Horizontal Flip", img4);
return 0;
}


 CV_DbgAssert((unsigned)(i1 * DataType<_Tp>::channels) < (unsigned)(size.p[1] * channels()));

感谢您花时间解决我的问题。

最佳答案

尝试

Mat img4 = img.clone();
for (int i = 0; i < img4.rows; i++)
{
    for (int j = 0; j < ceil(img4.cols); j++)
    {
        img4.at <cv::Vec3b (i,j) = img.at <cv::Vec3b (i, img.cols-1-j);
    }
}
if (img4.empty ()) return 1;
cv::imshow ("flipped", img4);
cv::waitKey (0);

关于c++ - opencv库中的水平翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39983854/

相关文章:

c++ - 我应该在游戏中使用引用还是按值传递常用数组 [C++]

c++ - OpenCV 3.2 for python with CUDA in Windows

android - 增强现实SDK,用于跟踪手

c++ - 我可以有一个要实例化的模板列表,而无需事先实例化吗?

c++ - HTTP Content-Length 大小不正确?

image - 在 OpenCV 的同一窗口中显示多个 (2,3,4,...) 图像

android - 检测皮肤并捕捉图像

Python RAW 图像奇怪的方格图案

c++ - NetBeans 不输出某些 ASCII 字符

c++ - 从 cvMat 转换为 UIImage 会改变图像