OpenCV之摩尔纹

摩尔纹

用数码相机拍摄景物中,如果有密纹的纹理,常常会出现莫名其妙的水波样条纹。这就是摩尔纹。简单的说,摩尔纹是差拍原理的一种表现。从数学上讲,两个频率接近的等幅正弦波叠加,合成信号的幅度将按照两个频率之差变化。差拍原理广泛应用到广播电视和通信中,用来变频、调制等。同样,差拍原理也适用于空间频率。空间频率略有差异的条纹叠加,由于条纹间隔的差异、重合位置会逐渐偏移,也会形成差拍。

摩尔纹的实现

源码:

复制代码
void add_moire_noise(Mat& src,Mat& dst,Point center,int degree)
{
    int width = src.cols;
    int heigh = dst.rows;
    for (int y = 0; y < heigh; y++)
    {
        uchar* data = dst.ptr<uchar>(y);
        uchar* data0 = src.ptr<uchar>(y);
        for (int x = 0; x < width; x++)
        {

            Point offset(x - center.x, y - center.y);
            double theta = atan2((double)offset.y, (double)offset.x);
            double rou = sqrt(pow((double)offset.x, 2) + pow((double)offset.y, 2));

            int newX = center.x + rou * cos(theta + degree * rou);
            int newY = center.y + rou * sin(theta + degree * rou);

            if (newX < 0)
                newX = 0;
            else if (newX >= width)
                newX = width - 1;

            if (newY < 0)
                newY = 0;
            else if (newY >= heigh)
                newY = heigh - 1;

            data[3 * x] = 0.8 * data0[3 * x]+ 0.2 * src.at<uchar>(newY, newX * 3);
            data[3 * x + 1] = 0.8 * data0[3 * x + 1]+ 0.2 * src.at<uchar>(newY, newX * 3 + 1);
            data[3 * x + 2] = 0.8 * data0[3 * x + 2]+ 0.2 * src.at<uchar>(newY, newX * 3 + 2);
        }
    }
}

原图:

摩尔纹:

相关推荐
从孑开始35 分钟前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
涛涛讲AI39 分钟前
一段音频多段字幕,让音频能够流畅自然对应字幕 AI生成视频,扣子生成剪映视频草稿
人工智能·音视频·语音识别
可触的未来,发芽的智生1 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
WWZZ20251 小时前
快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)
人工智能·算法·机器学习·计算机视觉·机器人·大模型·slam
AKAMAI2 小时前
数据孤岛破局之战 :跨业务分析的难题攻坚
运维·人工智能·云计算
Chicheng_MA2 小时前
算能 CV184 智能相机整体方案介绍
人工智能·数码相机·算能
Element_南笙2 小时前
吴恩达新课程:Agentic AI(笔记2)
数据库·人工智能·笔记·python·深度学习·ui·自然语言处理
倔强青铜三2 小时前
苦练Python第69天:subprocess模块从入门到上瘾,手把手教你驯服系统命令!
人工智能·python·面试
Antonio9152 小时前
【图像处理】rgb和srgb
图像处理·人工智能·数码相机
倔强青铜三2 小时前
苦练 Python 第 68 天:并发狂飙!concurrent 模块让你 CPU 原地起飞
人工智能·python·面试