رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نویز فلفل و نمک ( salt and pepper noise)
#1
سلام
میشه یه نمونه کد با opencv برای اضافه کزدن نویز فلفل نمکی به عکس بزارید؟
مرسی
پاسخ
سپاس شده توسط
#2
سلام
این کد به ویدئویی که از دوربین دریافت می کند نویز فلفل نمکی اضافه می کند:
کد:
#include <iostream>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>

void salt(cv::Mat &, int);
void pepper(cv::Mat &, int);

int main()
{
    cv::Mat frame;
    cv::VideoCapture capture(0);
    cv::namedWindow("salt & pepper noise (exit = esc)");

    while(true)
    {
        if(!capture.read(frame)) { break; }
        if(cv::waitKey(1)==27) { break; }

        salt(frame,1000);
        pepper(frame,1000);

        cv::imshow("salt & pepper noise (exit = esc)", frame);
    }

    return 0;
}

void salt(cv::Mat &image, int n)
{
    for(int k=0; k<n; k++)
    {
        int i = rand()%image.cols;
        int j = rand()%image.rows;

        if(image.channels() == 1){
            image.at<uchar>(j,i) = 255;
        } else if (image.channels() == 3){
            image.at<cv::Vec3b>(j,i)[0] = 255;
            image.at<cv::Vec3b>(j,i)[1] = 255;
            image.at<cv::Vec3b>(j,i)[2] = 255;
        }
    }
}

void pepper(cv::Mat &image, int n)
{
    for(int k=0; k<n; k++)
    {
        int i = rand()%image.cols;
        int j = rand()%image.rows;

        if(image.channels() == 1){
            image.at<uchar>(j,i) = 0;
        } else if (image.channels() == 3){
            image.at<cv::Vec3b>(j,i)[0] = 0;
            image.at<cv::Vec3b>(j,i)[1] = 0;
            image.at<cv::Vec3b>(j,i)[2] = 0;
        }
    }
}
[عکس: SaltPepperExam.png]
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط
#3
نمونه کد دیگه:

نویز فلفل نمکی
کد:
Mat saltpepper_noise = Mat::zeros(img.rows, img.cols,CV_8U);
randu(saltpepper_noise,0,255);

Mat black = saltpepper_noise < 30;
Mat white = saltpepper_noise > 225;

Mat saltpepper_img = img.clone();
saltpepper_img.setTo(255,white);
saltpepper_img.setTo(0,black);


نویز گاوسین
کد:
Mat gaussian_noise = img.clone();
randn(gaussian_noise,128,30);
[عکس: matlabOpencv.gif]

« کلاس های آموزش پردازش تصویر با نرم افزار متلب »

جهت کسب اطلاعات بیشتر با شماره تلفن 09130130252 تماس حاصل فرمائید.


«جهت مشاهده سرفصل این دوره کلیک نمایید»
پاسخ
سپاس شده توسط


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان