亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OpenCV如何實現PS擴散毛玻璃效果

發布時間:2021-09-02 13:52:06 來源:億速云 閱讀:128 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關OpenCV如何實現PS擴散毛玻璃效果的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

實現原理

PS的擴散效果可以產生類似毛玻璃質感的效果,使畫面有些毛毛的感覺。其實現可通過操作像素三通道數值的方式實現,定義一個隨機數器,將圖像中任一點的數值賦值為,以該點為中心一定尺寸窗口(如3*3,5*5)內隨機一個點的數值。

功能函數代碼

// 擴散效果
cv::Mat Diffusion(cv::Mat src,int size)
{
	int row = src.rows;
	int col = src.cols;
	RNG rng;
	cv::Mat result = src.clone();
	for (int i = size; i < row- size; ++i)
	{
		uchar* t = result.ptr<uchar>(i);
		for (int j = size; j < col- size; ++j)
		{
			int tmp = rng.uniform(0, 2*size+1);
			t[3 * j] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)));
			t[3 * j + 1] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)) + 1);
			t[3 * j + 2] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)) + 2);
		}
	}
	return result;
}

C++測試代碼

#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
cv::Mat Diffusion(cv::Mat src, int size);
 
int main()
{
	cv::Mat src = imread("test.jpg");
	int size = 5;
	cv::Mat result = Diffusion(src,size);
	cv::imshow("original", src);
	cv::imshow("result", result);
	waitKey(0);
	return 0;
}
 
// 擴散效果
cv::Mat Diffusion(cv::Mat src,int size)
{
	int row = src.rows;
	int col = src.cols;
	RNG rng;
	cv::Mat result = src.clone();
	for (int i = size; i < row- size; ++i)
	{
		uchar* t = result.ptr<uchar>(i);
		for (int j = size; j < col- size; ++j)
		{
			int tmp = rng.uniform(0, 2*size+1);
			t[3 * j] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)));
			t[3 * j + 1] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)) + 1);
			t[3 * j + 2] = src.at<uchar>(i - size + tmp / (2 * size + 1), 3 * (j - size + tmp % (2 * size + 1)) + 2);
		}
	}
	return result;
}

測試效果

OpenCV如何實現PS擴散毛玻璃效果

圖1 原圖

OpenCV如何實現PS擴散毛玻璃效果

圖2 5*5擴散

OpenCV如何實現PS擴散毛玻璃效果

圖3 11*11擴散

適當地調整size,可以改變擴散的強度,進而帶來不一樣的質感。

感謝各位的閱讀!關于“OpenCV如何實現PS擴散毛玻璃效果”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淳化县| 泸溪县| 温泉县| 孟连| 南华县| 久治县| 南投县| 宁武县| 佛学| 阜宁县| 昌吉市| 德州市| 中阳县| 四川省| 曲沃县| 焦作市| 治多县| 离岛区| 鹿泉市| 庆安县| 浮梁县| 广饶县| 成武县| 陆丰市| 建瓯市| 郴州市| 嘉善县| 荔浦县| 当涂县| 五大连池市| 都匀市| 西城区| 甘德县| 银川市| 仙游县| 涪陵区| 南雄市| 扶沟县| 溆浦县| 炎陵县| 台北市|