zoukankan      html  css  js  c++  java
  • 椒盐效果


    /*
    第一个小程序吧!
    个人觉得那么多函数没必要一个一个记,用到什么记什么。
    拿这个椒盐效果说说入门的知识点。
    Mat chanels() 通道,矩阵中的每一个矩阵元素拥有的值的个数,比如说 3 * 4 矩阵中一共 12 个元素,如果每个元素有三个值,那么就说这个矩阵是 3 通道的,即 channels = 3。
    常见的是一张彩色图片有红、绿、蓝三个通道。

    图像容器Mat

    还是先看Mat的存储形式。Mat和Matlab里的数组格式有点像,但一般是二维向量,如果是灰度图,一般存放<uchar>类型;如果是RGB彩色图,存放<Vec3b>类型。
    单通道灰度图数据存放格式:
    多通道的图像中,每列并列存放通道数量的子列,如RGB三通道彩色图:
    注意通道的顺序反转了:BGR。通常情况内存足够大的话图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很大方便。可以用 isContinuous()函数来判断图像数组是否为连续的。
    
    

    #include <opencvcv.h>
    #include <opencv2corecore.hpp>
    #include <opencv2highguihighgui.hpp>


    void salt(Mat &A ,int N){ for(int K=1;K<=N;K++){ int i=rand()%A.rows ; int j=rand()%A.cols ; if(A.channels()==1) A.at<uchar>(i,j)=255 ; else{ A.at<Vec3b>(i,j)[0]=255 ; A.at<Vec3b>(i,j)[1]=255 ; A.at<Vec3b>(i,j)[2]=255 ; } } } int main(){ Mat A=imread("lilianjie.jpg") ; if(A.empty()) return -1 ; imshow("old picture",A) ; salt(A,400) ; imshow("new picture", A) ; waitKey(0) ; return 0; }

      

  • 相关阅读:
    .NET面试题目
    ASP.NET应用管理系统框架概述(三)
    ASP.NET应用管理系统框架概述(二)
    ASP.NET应用管理系统框架概述(一)
    InstallShield使用文档
    dotnet的安装包例子
    Access数据库连接池
    InstallShield使用——InstallScript MIS Project例子
    InstallShield使用——例子
    ASP.NET针对Sybase数据库使用分页技术
  • 原文地址:https://www.cnblogs.com/liyangtianmen/p/3348860.html
Copyright © 2011-2022 走看看