亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【OpenCV】圖像像素隨機(jī)化:雪花漫天飛

系統(tǒng) 2223 0

近來經(jīng)常和心理系做實(shí)驗(yàn),總是有各種“什么什么隨機(jī)化,刺激的物理性質(zhì)保持一樣。。”的需求。之前做《 去掩蔽 》的實(shí)驗(yàn)時(shí),有一套圖片就是做的像素隨機(jī)化,這是最簡單的隨機(jī)化了。當(dāng)時(shí)圖像只有兩種像素,灰的和深灰的,而且深灰的比較少。

【OpenCV】圖像像素隨機(jī)化:雪花漫天飛

于是我就統(tǒng)計(jì)了深灰像素點(diǎn)的個(gè)數(shù),然后在一張同樣大的灰色圖片中的隨機(jī)位置灑深灰像素點(diǎn)。

?

    int pix_count=0;

	for(int i=0;i<img_width+eye_shift;i++){

		uchar* p=sub_masker.ptr<uchar>(i);

		for(int j=0;j<img_width+eye_shift;j++){

			if(p[j*3]==78){

				pix_count++;

			}

		}

	}

	//cout<<pix_count<<endl;

	int pix_width=img_width+eye_shift;

	while(pix_count>0){

		int rand_x=rand()%pix_width;

		int rand_y=rand()%pix_width;

		uchar* p_pix=pix_masker.ptr<uchar>(rand_x);

		if(p_pix[rand_y*3]==128){

			p_pix[rand_y*3]=78;

			p_pix[rand_y*3+1]=78;

			p_pix[rand_y*3+2]=78;

			pix_count--;

			//	cout<<pix_count<<endl;

		}

	}
  

?

?

【OpenCV】圖像像素隨機(jī)化:雪花漫天飛
大致效果如上圖(*忽略幾個(gè)字母,是疊加了目標(biāo)刺激的效果)。

但這次需要對一個(gè)刺激視頻中每一幀做隨機(jī)化,且視頻是彩色的。
【OpenCV】圖像像素隨機(jī)化:雪花漫天飛
我一開始的思路是對像素中每一個(gè)點(diǎn),隨機(jī)找另外一個(gè)點(diǎn)交換他們的RGB值。
      		Mat frame_copy(frame_rows,fram_cols, CV_8UC3,Scalar(0,0,0));

		frame.copyTo(frame_copy);

		Mat frame_tag=Mat::zeros(frame_rows,fram_cols, CV_8UC1);

		for(int i=0;i<frame_rows;i++){

			uchar* p=frame_copy.ptr<uchar>(i);

			for(int j=0;j<fram_cols;j+=3){

				uchar r=p[0];

				uchar b=p[1];

				uchar g=p[2];

				int rand_row=rand()%frame_rows;

				int rand_col=rand()%fram_cols;

			//	cout<<rand_row<<" "<<rand_col<<endl;

				uchar* rand_p=frame_copy.ptr<uchar>(rand_row);

				p[0]=rand_p[rand_col*3+0];

				p[1]=rand_p[rand_col*3+1];

				p[2]=rand_p[rand_col*3+2];

				rand_p[rand_col*3+0]=r;

				rand_p[rand_col*3+1]=b;

				rand_p[rand_col*3+2]=g;

			}

		}
    

但不知為何,實(shí)現(xiàn)出來的效果是這樣的。。。
【OpenCV】圖像像素隨機(jī)化:雪花漫天飛
莫不是因?yàn)槊總€(gè)點(diǎn)都被隨機(jī)了,在后面的時(shí)候又以一定的概率被隨機(jī)回去了???

于是還是改成了原來撒點(diǎn)的思路,對應(yīng)新建一幅一樣大的黑色圖,逐點(diǎn)讀取原圖的像素點(diǎn),如果遇到非黑色的點(diǎn),就在新圖隨機(jī)找一個(gè)黑色的(也就是未被修改過的點(diǎn))修改像素值為原圖中此點(diǎn)的像素值。
完整代碼:
      int main(){

	VideoCapture inputVideo("情緒學(xué)習(xí).wmv");

	if ( !inputVideo.isOpened()){

		cout << "Could not open the input video."  << endl;

		return -1;

	}

	Size S = Size((int) inputVideo.get(CV_CAP_PROP_FRAME_WIDTH), //Acquire input size

		(int) inputVideo.get(CV_CAP_PROP_FRAME_HEIGHT));

	int ex = static_cast<int>(inputVideo.get(CV_CAP_PROP_FOURCC)); // Get Codec Type- Int form

	VideoWriter outputVideo; // Open the output

	outputVideo.open("ZhongXing.wmv",CV_FOURCC('M','J','P','G'), 30,S, true);

	srand((unsigned)time(NULL));

	int frame_count=0;

	while(true){

		Mat frame;

		inputVideo>>frame;

		if(frame.empty())

			break;

		int frame_rows=frame.rows;

		int fram_cols=frame.cols;

		Mat frame_copy(frame_rows,fram_cols, CV_8UC3,Scalar(0,0,0));

		Mat frame_tag=Mat::zeros(frame_rows,fram_cols, CV_8UC1);

		for(int i=0;i<frame_rows;i++){

			uchar* p_frame=frame.ptr<uchar>(i);

			for(int j=0;j<fram_cols;j+=3){

				uchar r=p_frame[j+0];

				uchar b=p_frame[j+1];

				uchar g=p_frame[j+2];

				if((r>0)||(b>0)||(g>0)){

					bool if_tag=false;

					while(!if_tag){

						int rand_row=rand()%frame_rows;

						int rand_col=rand()%fram_cols;

						uchar* p_tag=frame_tag.ptr<uchar>(rand_row);

						uchar* p_copy=frame_copy.ptr<uchar>(rand_row);

						if(p_tag[rand_col]==1)

							continue;

						else{

							p_tag[rand_col]=1;

							p_copy[rand_col*3+0]=r;

							p_copy[rand_col*3+1]=b;

							p_copy[rand_col*3+2]=g;

							if_tag=true;

						}

					}

				}

			}

		}

		cout<<"Write frame: "<<frame_count++<<endl;

		outputVideo<<frame_copy;

	}

	cout<<"Finished Writing"<<endl;

	return 0;

}
    

然后就實(shí)現(xiàn)了漫天飛舞的隨機(jī)雪花效果啦~
【OpenCV】圖像像素隨機(jī)化:雪花漫天飛




(轉(zhuǎn)載請注明作者和出處: http://blog.csdn.net/xiaowei_cqu ?未經(jīng)允許請勿用于商業(yè)用途)



?

?

【OpenCV】圖像像素隨機(jī)化:雪花漫天飛


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧美二区三区久本道 | 日韩久久视频 | 99r精品视频| 欧美国产日韩一区二区三区 | 国产亚洲精品美女一区二区 | 一级片aaaaaa| 欧美高清在线视频一区二区 | 免费看一级做a爰片久久 | 日韩中文字幕在线播放 | 在线观看欧美视频 | 日韩一区二区免费看 | 日日夜人人澡人人澡人人看免 | 国产精品福利久久2020 | 国产日韩欧美一区二区三区综合 | 日韩高清性爽一级毛片免费 | 久久国产午夜精品理论片34页 | 欧美人猛交日本人xxx | 欧美在线视频一区二区 | 伊人免费 | 日本免费人做人一区在线观看 | 国产亚洲精品久久综合影院 | 久久综合九九亚洲一区 | 一级片在线观看视频 | 97视频久久久 | 国内精品视频九九九九 | 一区二区三区免费精品视频 | 亚洲综合综合在线 | 国产亚洲精品国产第一 | 亚洲国产精品一区二区首页 | 亚洲成色综合一区二区三区四区 | 欧美不卡视频 | 免费国产成人午夜在线观看 | 国产主播第一页 | 欧美成人网在线综合视频 | 亚洲国产欧洲综合997久久 | 欧美日韩精品高清一区二区 | 久久久久青草大香线综合精品 | 激情久久久久久久久久久 | 亚洲网在线观看 | 一级毛毛片 | 国产日韩亚洲欧洲一区二区三区 |