频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
OpenCV 图像存取之椒盐噪点
2017-03-29 09:14:16           
收藏   我要投稿

OpenCV 图像存取之椒盐噪点:所谓的椒盐早点便是指随机的将部分像素设置为白色或者黑色。在传输过程中,如何图像的部分像素丢失,该噪点便会出现。

#include 
#include 
#include 
#include 
using namespace cv;

// 读入图片
Mat readImage(String imgName);
// 显示图片
void showImage(String windowName, Mat ima);
// 椒盐函数
void salt(cv::Mat &image, int n);
// 保存图片
void saveImage(String imageName, Mat ima);

void main() {
    String imgName = "381066140_1536_864.jpg";
    // 打开图像
    Mat img = readImage(imgName);
    // 设置椒盐增加噪点
    salt(img, 40000); 
    showImage("Salt", img);
    // 保存图片
    saveImage("salt.jpg", img);
}

// 椒盐函数,设置为白色噪点
void salt(cv::Mat &image, int n) {
    for (int k = 0; k < n; k++) {
        // 生成行列的随机数
        int iCol = rand() % image.cols;
        int jRow = rand() % image.rows;
        // 判断是否是灰度图
        if (1 == image.channels()) {
            image.at(jRow, iCol) = 255;
        }
        // 判断是否是彩色图像
        else if (3 == image.channels()) {
            image.at(jRow, iCol)[0] = 255;
            image.at(jRow, iCol)[1] = 255;
            image.at(jRow, iCol)[2] = 255;
        }
    }
}

// 显示图片
void showImage(String windowName ,Mat ima) {
    imshow(windowName, ima);
    waitKey(0);
}

// 读入图片
Mat readImage(String imgName) {
    Mat ima = imread(imgName);
    cvNamedWindow("Charater2");
    imshow("C2", ima);
    waitKey(0);
    return ima;
}

// 保存图片
void saveImage(String imageName, Mat ima) {
    imwrite(imageName, ima);
}
点击复制链接 与好友分享!回本站首页
上一篇:PAT乙级1006题题目解答
下一篇:Python检查数字列表里是否有空值
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站