生活随笔
收集整理的這篇文章主要介紹了
OpenCV—图像椒盐噪声生成器
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
OpenCV—圖像椒鹽噪聲生成器
椒鹽噪聲
椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲。椒鹽噪聲是指兩種噪聲,一種是鹽噪聲(salt noise)鹽=白色(255),另一種是胡椒噪聲(pepper noise),椒=黑色(0)。前者是高灰度噪聲,后者屬于低灰度噪聲。一般兩種噪聲同時(shí)出現(xiàn),呈現(xiàn)在圖像上就是黑白雜點(diǎn)。對(duì)于彩色圖像,也有可能表現(xiàn)為在單個(gè)像素BGR三個(gè)通道隨機(jī)出現(xiàn)的255或0,加入椒鹽噪聲的圖像如下圖所示:
原圖
圖像加入黑白椒鹽噪聲后
圖像分通道加入椒鹽噪聲
添加椒鹽噪聲的函數(shù)
函數(shù):
[cpp]?view plaincopy
void?salt(cv::Mat?image,?int?n)??void?pepper(cv::Mat?image,?int?n)??參數(shù):
- image — 輸入圖像(輸出圖像)灰度或彩色模式
[cpp]?view plaincopy
??void?salt(cv::Mat?image,?int?n)?{????????int?i,j;??????for?(int?k=0;?k<n/2;?k++)?{??????????????????????i?=?std::rand()%image.cols;???????????j?=?std::rand()%image.rows;?????????????if?(image.type()?==?CV_8UC1)?{?????????????????image.at<uchar>(j,i)=?255;?????????????}?else?if?(image.type()?==?CV_8UC3)?{?????????????????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)?{????????int?i,j;??????for?(int?k=0;?k<n;?k++)?{??????????????????????i?=?std::rand()%image.cols;???????????j?=?std::rand()%image.rows;?????????????if?(image.type()?==?CV_8UC1)?{?????????????????image.at<uchar>(j,i)=?0;?????????????}?else?if?(image.type()?==?CV_8UC3)?{?????????????????image.at<cv::Vec3b>(j,i)[0]=?0;???????????????image.at<cv::Vec3b>(j,i)[1]=?0;???????????????image.at<cv::Vec3b>(j,i)[2]=?0;???????????}??????}??}??想要分通道加入椒鹽噪聲,只需要在image.at<cv::Vec3b>(j,i)[0]或[1]、[2]三個(gè)通道隨機(jī)加入255或0即可。
轉(zhuǎn)載請(qǐng)注明:iracer的CSDN博客?http://blog.csdn.net/iracer/article/details/49383491
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 https://blog.csdn.net/iracer/article/details/49383491
OpenCV—圖像椒鹽噪聲生成器
椒鹽噪聲
椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲。椒鹽噪聲是指兩種噪聲,一種是鹽噪聲(salt noise)鹽=白色(255),另一種是胡椒噪聲(pepper noise),椒=黑色(0)。前者是高灰度噪聲,后者屬于低灰度噪聲。一般兩種噪聲同時(shí)出現(xiàn),呈現(xiàn)在圖像上就是黑白雜點(diǎn)。對(duì)于彩色圖像,也有可能表現(xiàn)為在單個(gè)像素BGR三個(gè)通道隨機(jī)出現(xiàn)的255或0,加入椒鹽噪聲的圖像如下圖所示:
原圖
圖像加入黑白椒鹽噪聲后
圖像分通道加入椒鹽噪聲
添加椒鹽噪聲的函數(shù)
函數(shù):
[cpp]?view plaincopy
void?salt(cv::Mat?image,?int?n)??void?pepper(cv::Mat?image,?int?n)??參數(shù):
- image — 輸入圖像(輸出圖像)灰度或彩色模式
[cpp]?view plaincopy
??void?salt(cv::Mat?image,?int?n)?{????????int?i,j;??????for?(int?k=0;?k<n/2;?k++)?{??????????????????????i?=?std::rand()%image.cols;???????????j?=?std::rand()%image.rows;?????????????if?(image.type()?==?CV_8UC1)?{?????????????????image.at<uchar>(j,i)=?255;?????????????}?else?if?(image.type()?==?CV_8UC3)?{?????????????????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)?{????????int?i,j;??????for?(int?k=0;?k<n;?k++)?{??????????????????????i?=?std::rand()%image.cols;???????????j?=?std::rand()%image.rows;?????????????if?(image.type()?==?CV_8UC1)?{?????????????????image.at<uchar>(j,i)=?0;?????????????}?else?if?(image.type()?==?CV_8UC3)?{?????????????????image.at<cv::Vec3b>(j,i)[0]=?0;???????????????image.at<cv::Vec3b>(j,i)[1]=?0;???????????????image.at<cv::Vec3b>(j,i)[2]=?0;???????????}??????}??}??想要分通道加入椒鹽噪聲,只需要在image.at<cv::Vec3b>(j,i)[0]或[1]、[2]三個(gè)通道隨機(jī)加入255或0即可。
轉(zhuǎn)載請(qǐng)注明:iracer的CSDN博客?http://blog.csdn.net/iracer/article/details/49383491
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 https://blog.csdn.net/iracer/article/details/49383491
總結(jié)
以上是生活随笔為你收集整理的OpenCV—图像椒盐噪声生成器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。