目录

一:图片的读取显示

二:OpenCV像素点操作

雪花屏特效

色彩反转

暗色处理

毛玻璃特效

三:OpenCV库函数的使用

高斯模糊

XY轴模糊

灰度化处理

中值滤波

四:OpenCV视频处理

播放视频:那些年,我们一起追的女孩

调用本机摄像头


一:图片的读取显示

对于读取图片的路径选择,

需要注意 是window下 \ 但是在ubuntu下是 / 在编写代码的时候需要修正

图片的读取显示

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片waitKey(0);//等待按键return 0;
}

效果

对图片可以滚轮放大查看RGB数值,不难看出,越是深色RGB数值越是接近0,越是浅色RGB数值越是接近255

查看分辨率 499 X 355,同时将鼠标移动至图片边缘处(看到 x=498,y=334 博主已经很尽力移到边缘啦,如果不信,你们自己操作一下,哈哈),

由此可以知道图片就是由一个又一个的像素点构成的

二:OpenCV像素点操作

雪花屏特效

雪花屏特效实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//雪花屏特效int q = rand()%col;data[q]=155;//某些通道随机改成155}}return img;
}int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg = imageprocess(img);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

色彩反转

色彩反转实现

Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//色彩反转data[j] = data[j] - 50;}}return img;
}

暗色处理

暗色处理实现

Mat imageprocess(Mat &img)
{int row = img.rows;int col = img.cols * img.channels();for(int i=0;i<row;i++){uchar * data = img.ptr<uchar>(i);for(int j=0;j<col;j++){//暗色处理data[j] = data[j]/2;}}return img;
}

毛玻璃特效

毛玻璃特效实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;//毛玻璃特效
Mat imageGalss(Mat &img)
{RNG rng;int random = 0;int num = 5;for(int i=0;i<img.rows -5;i++){for(int j=0;j<img.cols -5;j++){random = rng.uniform(0,num);img.at<Vec3b>(i,j)[0] = img.at<Vec3b>(i+random,j+random)[0];img.at<Vec3b>(i,j)[1] = img.at<Vec3b>(i+random,j+random)[1];img.at<Vec3b>(i,j)[2] = img.at<Vec3b>(i+random,j+random)[2];}}return img;
}int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg = imageGalss(img);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

三:OpenCV库函数的使用

高斯模糊

高斯模糊,如下图,就好像 近视眼的人没有戴眼镜看事物的情境(轻度近视)

高斯模糊实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//高斯模糊cv::GaussianBlur(img,resimg,Size(5,5),0);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

XY轴模糊

XY轴模糊,就好像 近视眼的人没有戴眼镜看事物的情境(重度近视)

XY轴模糊实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//XY轴模糊cv::blur(img,resimg,Size(10,10));imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

灰度化处理

灰度化处理实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//灰度处理cvtColor(img,resimg,CV_BGR2GRAY);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

中值滤波

中值滤波,视觉上就感觉像是油画

中值滤波实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:/000imageopencv/333.jpg");//图片路径imshow("img",img);//显示图片Mat resimg;//中值滤波cv::medianBlur(img,resimg,5);imshow("resimg",resimg);//显示接收图片waitKey(0);//等待按键return 0;
}

四:OpenCV视频处理

播放视频:那些年,我们一起追的女孩

视频播放实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat frame;VideoCapture cap("D:/000000000000000ffmpeg/那些年,我们一起追的女孩.mp4");while (cap.read(frame)){imshow("frame",frame);waitKey(50);}return 0;
}

调用本机摄像头

如下图,可以调用本地摄像头

调用本地摄像头 实现

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;int main(int argc, char *argv[])
{Mat frame;VideoCapture cap(0);while (cap.read(frame)){imshow("frame",frame);waitKey(50);}return 0;
}

OpenCV像素点操作 图片特效相关推荐

  1. opencv+tensorflow手势识别+图片特效

    一.效果展示 手势识别+特效展示!(此处只录入四种,简单运行!!!) 二. 项目介绍 本次项目是在上一篇博文上的改进版本,在此次设计中录入了四种手势增加了训练图片和训练轮数,使得准确率提升,并且改进了 ...

  2. TensorFlow与OpenCV,读取图片,进行简单操作并显示

    本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonO ...

  3. Python-OpenCV 处理图像(三):图像像素点操作

    0x01. 像素 有两种直接操作图片像素点的方法: 第一种办法就是将一张图片看成一个多维的list,例如对于一张图片im,想要操作第四行第四列的像素点就直接 im[3,3] 就可以获取到这个点的RGB ...

  4. Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作

    0x01. 滤镜 喜欢自拍的人肯定都知道滤镜了,下面代码尝试使用一些简单的滤镜,包括图片的平滑处理.灰度化.二值化等: import cv2.cv as cvimage=cv.LoadImage('i ...

  5. android Bimtap 各种图片处理方法、图片特效

    原帖地址:http://gundumw100.iteye.com/blog/849729 Java代码   //压缩图片大小 public static Bitmap compressImage(Bi ...

  6. opencv打开的图片应用于nn.Conv2d()(一)(H, W, C)转为 (C, H, W)

    在深度学习领域,使用opencv打开的图片格式是:(H, W, C),而pytorch中的卷积函数nn.Conv2d()使用的数据格式是:(T, C, H, W) T 代表的是迷你批次,即一次传入多少 ...

  7. OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法

    OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法 前言: 以前笔者在项目中经常使用到OpenCV的算法,而大部分OpenCV的算法都需要进行遍历操作,而且很多遍历操作都是需要对目标像素点的 ...

  8. opencv 图像操作,常用 OpenCV 内置函数

    OpenCV 如何对图像的像素进行操作 对图像的像素进行操作,我们可以实现空间增强,反色,大部分图像特效系列都是基于像素操作等目的.先来看一下内存空间中图像矩阵,也就是Mat的矩阵数值部分是怎么存储的 ...

  9. opencv中图像处理油画特效

    opencv中图像处理油画特效 import cv2 import numpy as np import random import mathimg = cv2.imread(r"C:\Us ...

  10. Ubuntu系统安装opencv详细操作及具体应用

    Ubuntu系统安装opencv详细操作及具体应用 前言 一.opencv是个什么东西 二.opencv的安装 1.资源准备及前期准备 2.安装编译 3.配置更改 4.验证版本 三.opencv应用 ...

最新文章

  1. 客快物流大数据项目(七):Docker总结
  2. html设备监控系统模板,蓝色的远程监控设备系统后台管理界面模板
  3. Linux下使用Speedtest测试网速教程
  4. html quot代替src,html特效代码大全
  5. 【Android】动态UI : LayoutParams.addRule(...) LayoutParams.addRule(..., ...)
  6. Blend4Web —— 开源的 WebGL 框架
  7. 中国人民大学金琴老师组,AI·M^3实验室招募视觉与语言方向硕博
  8. 基于RNGCryptoServiceProvider的洗牌算法
  9. poi 操作excel的处理
  10. 关于Android Studio Arctic Fox版本找不到Database Inspection这件事
  11. 【ArcGIS小技巧视频教程】(3):五分钟搞定地图矢量化
  12. 网狐6603全部架设过程棋牌源码下载搭建教程
  13. cubieboard刷机
  14. 监控摄像头进行网页直播和微信直播的技术方案
  15. WordPress个人博客Cosy3.1.3主题+积木部分插件
  16. CoreOS为Kubernetes量身打造分布式存储方案Torus
  17. can‘t connect to mysql server on localhost解决办法。 net start mysql——无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
  18. php模拟苹果手机访问,php 使用curl模拟ip和来源进行访问的实现方法
  19. Ghost 使用详解
  20. 下个月去北京了,心如一团乱麻好多事情要解决,但是不知道从哪里开始,还是顺其自然吧,一件件的解决...

热门文章

  1. Xilinx FPGA等效门数计算
  2. 自助装机配置专家点评
  3. laravel 微信支付easywechat
  4. CM311-1a YST(2G+16G)刷Armbian后的网络设置
  5. UG NX 工程图视图概述
  6. ue4设置图片大小_UE4 相机拍照功能(图片保存)
  7. 【MSFconsole进阶】evasion(免杀模块):免杀模块使用方法,相关设置
  8. SentencePiece,subword-nmt,bpe算法
  9. C语言char转short,将short类型转换为char类型
  10. JupyterNotebook关闭时报Python.exe应用程序错误