摘要:作者版权声明著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处实现原理怀旧色可以通过调整三通道数值实现,具体公式功能函数代码怀旧色怀旧调色测试代码怀旧色怀旧调色测试效果图原图图怀旧色滤镜图灰度图怀旧色滤镜完成,与
作者:Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
怀旧色可以通过调整RGB三通道数值实现,具体公式:
// 怀旧色cv::Mat Nostalgic(cv::Mat src){ CV_Assert(src.channels() == 3); int row = src.rows; int col = src.cols; cv::Mat temp = src.clone(); for (int i = 0; i < row; ++i) { uchar *s = src.ptr(i); uchar *t = temp.ptr(i); for (int j = 0; j < col; ++j) { int B = s[3 * j]; int G = s[3 * j + 1]; int R = s[3 * j + 2]; // 怀旧调色 float newB = 0.272f*R + 0.534f*G + 0.131f*B; float newG = 0.349f*R + 0.686f*G + 0.168f*B; float newR = 0.393f*R + 0.769f*G + 0.189f*B; if (newB < 0) newB = 0; if (newB > 255) newB = 255; if (newG < 0) newG = 0; if (newG > 255) newG = 255; if (newR < 0) newR = 0; if (newR > 255) newR = 255; t[3 * j] = (uchar)newB; t[3 * j + 1] = (uchar)newG; t[3 * j + 2] = (uchar)newR; } } return temp;}
#include #include using namespace std;using namespace cv;cv::Mat Nostalgic(cv::Mat src);int main(){ cv::Mat src = imread("test2.jpg"); cv::Mat result1 = Nostalgic(src); cv::Mat gray; cvtColor(src, gray, COLOR_BGR2GRAY); cv::imshow("original", src); cv::imshow("gray", gray); cv::imshow("result", result); waitKey(0); return 0;}// 怀旧色cv::Mat Nostalgic(cv::Mat src){ CV_Assert(src.channels() == 3); int row = src.rows; int col = src.cols; cv::Mat temp = src.clone(); for (int i = 0; i < row; ++i) { uchar *s = src.ptr(i); uchar *t = temp.ptr(i); for (int j = 0; j < col; ++j) { int B = s[3 * j]; int G = s[3 * j + 1]; int R = s[3 * j + 2]; // 怀旧调色 float newB = 0.272f*R + 0.534f*G + 0.131f*B; float newG = 0.349f*R + 0.686f*G + 0.168f*B; float newR = 0.393f*R + 0.769f*G + 0.189f*B; if (newB < 0) newB = 0; if (newB > 255) newB = 255; if (newG < 0) newG = 0; if (newG > 255) newG = 255; if (newR < 0) newR = 0; if (newR > 255) newR = 255; t[3 * j] = (uchar)newB; t[3 * j + 1] = (uchar)newG; t[3 * j + 2] = (uchar)newR; } } return temp;}
怀旧色滤镜完成,与灰度图相比,有种古典萧瑟的感觉~
如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/118838.html
摘要:目前视频的采集源主要来自摄像头采集屏幕录制从视频文件读取推流。音视频处理前处理模块也是主观影响主播观看效果最主要的环节。用户停止直播,反初始化,销毁线程。跳帧可以有效的解决用户在网络不好的情况下,直播卡顿的问题。 随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字、图片无法满足人们对视觉的需求,因此视频直播应运而生。承载了实时性Real-Time和交互性的直播云服务是直...
摘要:目前视频的采集源主要来自摄像头采集屏幕录制从视频文件读取推流。音视频处理前处理模块也是主观影响主播观看效果最主要的环节。用户停止直播,反初始化,销毁线程。跳帧可以有效的解决用户在网络不好的情况下,直播卡顿的问题。 随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字、图片无法满足人们对视觉的需求,因此视频直播应运而生。承载了实时性Real-Time和交互性的直播云服务是直...
摘要:目前视频的采集源主要来自摄像头采集屏幕录制从视频文件读取推流。音视频处理前处理模块也是主观影响主播观看效果最主要的环节。用户停止直播,反初始化,销毁线程。跳帧可以有效的解决用户在网络不好的情况下,直播卡顿的问题。 随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字、图片无法满足人们对视觉的需求,因此视频直播应运而生。承载了实时性Real-Time和交互性的直播云服务是直...
摘要:网易云信推出一系列文章,对视频直播技术进行深入讲解,本篇文章将向大家介绍端的推流技术。目前视频的采集源主要来自摄像头采集屏幕录制从视频文件读取推流。音视频处理前处理模块也是主观影响主播观看效果最主要的环节。音视频发送推流使用的流媒体协议是。 随着网络基础建设的发展和资费的下降,在这个内容消费升级的时代,文字、图片无法满足人们对视觉的需求,因此视频直播应运而生。承载了实时性Real-Ti...
摘要:最近学习了中的重头戏。其繁多,这次主要学习常用的,并且完成以下两个代码实现去色滤镜实现负色反色滤镜欢迎入群。其中,和是圆心坐标,是半径。而和的单位是弧度制。什么是更多滤镜实现去色效果去色效果去色效果相当于就是老旧相机拍出来的黑白照片。 最近学习了 HTML5 中的重头戏--canvas。利用 canvas,前端人员可以很轻松地、进行图像处理。其 API 繁多,这次主要学习常用的 API,并且...
阅读 2347·2021-11-16 11:45
阅读 3721·2021-11-11 16:55
阅读 2317·2021-10-11 10:59
阅读 2019·2021-10-08 10:05
阅读 3476·2021-09-23 11:30
阅读 2190·2021-09-07 09:58
阅读 3032·2021-09-02 15:34
阅读 561·2019-08-30 15:55