91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

兴城市| 磐安县| 栾川县| 晴隆县| 沧源| 大新县| 梅州市| 石阡县| 滨海县| 普宁市| 铜梁县| 五原县| 石城县| 安图县| 鸡泽县| 康马县| 松江区| 班玛县| 加查县| 九龙城区| 绥江县| 轮台县| 磴口县| 阜南县| 应城市| 富平县| 朔州市| 克什克腾旗| 清丰县| 方城县| 安陆市| 神农架林区| 库车县| 昌宁县| 德保县| 博爱县| 沽源县| 乳山市| 红桥区| 绩溪县| 遂川县|