opencv學習筆記存取畫素值
阿新 • • 發佈:2018-10-31
我不想永遠是小明,我也想成為小紅。
椒鹽噪點:隨機的將部分畫素設定為白色或黑色。如果部分畫素丟失,那麼這種噪點就會出現。
cout是輸出,屬於iostream,格式:cout<<
CV_[位數][帶符號與否][型別字首]C[通道數],如CV_8UC3表示使用8位的unsigned char型,每個畫素由三個元素組成三通道。
rand()隨機數生成函式
void“無型別”
rand()%X:%為取餘數,該句作用:生成小於X的隨機數
at(int y,int x)可以用來存取影象元素,但是必須宣告影象的資料型別。【一定要y在前,x在後】
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; void salt(Mat &image, int n)//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)//為RGB圖 { image.at<Vec3b>(j,i)[0] = 255; image.at<Vec3b>(j,i)[1] = 255; image.at<Vec3b>(j,i)[2] = 255; } } } int main() { Mat srcImage = imread("1.jpg"); salt(srcImage, 3000); namedWindow("處理圖"); imshow("處理圖", srcImage); waitKey(0); return 0; }