像素操作

#include<iostream>
#include<opencv2/opencv.hpp> using namespace std;
using namespace cv; int main(int argc, char**argv)
{
Mat src, src_gray;
src= imread("b.jpg");
if (src.empty())
{
cout << "could not load img.." << endl;
return -;
}
namedWindow("input", CV_WINDOW_AUTOSIZE);
imshow("input", src);
/*
cvtColor(src, src_gray, CV_BGR2GRAY);
namedWindow("output", CV_WINDOW_AUTOSIZE);
imshow("output", src_gray);
int height= src_gray.rows;
int width = src_gray.cols;
for (int row = 0; row < height; ++row)
{
for (int col = 0; col < width; ++col)
{
int gray = src_gray.at<uchar>(row, col);
src_gray.at<uchar>(row, col) = 255 - gray;
}
} imshow("output", src_gray);
*/
Mat dst;
dst.create(src.size(), src.type()); int height = src.rows;
int width = src.cols;
int chn = src.channels(); for(int row=;row<height;++row)
for (int col = ; col < width; ++col)
{
if (chn == )
{
int gray = src_gray.at<uchar>(row, col);
src_gray.at<uchar>(row, col) = - gray;
}
else if(chn==)
{
dst.at<Vec3b>(row, col)[] = - src.at<Vec3b>(row, col)[];
dst.at<Vec3b>(row, col)[] = - src.at<Vec3b>(row, col)[];
dst.at<Vec3b>(row, col)[] = - src.at<Vec3b>(row, col)[]; }
}
//bitwise_not(src, dst);
imshow("dst", dst);
waitKey();
return ;
}

直线,举行,圆形,椭圆的绘制与随机直线随机颜色的绘制

#include<iostream>
#include<opencv2/opencv.hpp> using namespace std;
using namespace cv; Mat src;
const char *drawdemo_win = "draw shapes and text demo";
void MyLines();
void MyRectangle();
void MyEclipse();
void MyCircle();
void MyPolygon();
void RandomLineDemo(); int main(int argc, char **argv)
{
src = imread("b.jpg");
if (src.empty())
{
cout << "Load image failed" << endl;
return -;
}
imshow("input image", src);
//MyLines();
//MyRectangle();
//MyEclipse();
//MyCircle();
//MyPolygon();
//MyPolygon();
//putText(src, "Hello OpenCV", Point(300, 300), CV_FONT_HERSHEY_COMPLEX, 1.0, Scalar(12, 255, 255), 3, 8);
RandomLineDemo();
imshow("draw", src);
waitKey(); return ;
} void MyLines()
{
Point p1 = Point(, );
Point p2;
p2.x = ;
p2.y = ;
Scalar color = Scalar(, , );
line(src, p1, p2, color, , LINE_AA);
} void MyRectangle()
{
Rect rect = Rect(, , , );
Scalar color = Scalar(, , );
rectangle(src, rect, color, , LINE_8);
} void MyEclipse()
{
Scalar color = Scalar(, , );
ellipse(src, Point(src.cols / , src.rows / ), Size(src.cols / , src.rows / ), , , , color, , LINE_8); } void MyCircle()
{
Scalar color = Scalar(,, );
Point center = Point(src.cols / , src.rows / );
circle(src, center, ,color, , );
} void MyPolygon()
{
Point pts[][];
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, );
pts[][] = Point(, ); const Point *ppts[] = { pts[] };
int npt[] = { }; Scalar color = Scalar(, , );
fillPoly(src, ppts, npt, , color, );
} void RandomLineDemo()
{
RNG rng();
Point pt1;
Point pt2;
Mat bg = Mat::zeros(src.size(), src.type());
namedWindow("Random Line Demo", CV_WINDOW_AUTOSIZE);
for(int i=;i<;++i)
{
pt1.x = rng.uniform(, src.cols);
pt2.x = rng.uniform(, src.cols);
pt1.y = rng.uniform(, src.rows);
pt2.y = rng.uniform(, src.rows);
Scalar color = Scalar(rng.uniform(, ), rng.uniform(, ), rng.uniform(, ));
if (waitKey() > )
break;
line(bg, pt1, pt2, color, , );
imshow("Random Line Demo", bg);
}
}

OpenCV像素操作和图形绘制的更多相关文章

  1. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  2. C# 操作Excel图形——绘制、读取、隐藏、删除图形

    简介 本篇文章将介绍C# 如何处理Excel图形相关的问题,包括以下内容要点: 1.绘制图形 1.1 绘制图形并添加文本到图形 1.2 添加图片到图形 1.3 设置图形阴影效果 1.4 设置图形透明度 ...

  3. 【opencv系列04】OpenCV4.X图形绘制

    一. 基本图形绘制 1. 基本函数与参数 cv2.line(): 线 cv2.circle(): 圆 cv2.rectangle(): 矩形 cv2.ellipse(): 椭圆 cv2.putText ...

  4. HTML5 canvas图像绘制方法与像素操作属性和方法

    图像绘制方法 drawImage()        向画布上绘制图像.画布或视频 像素操作属性和方法 width                                返回 ImageData ...

  5. Opencv中图像的遍历与像素操作

    Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0 ...

  6. opencv中对图像的像素操作

    1.对灰度图像的像素操作: #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using ...

  7. python opencv:像素操作

    图片的像素 像素:组成图片的单位 RGB:颜色由 RGB三种颜色组成 颜色深度:对于8bit的颜色深度来说,它可以表示的颜色范围是 0 ~ 255,对于RGB图片来说,8位颜色深度可以表示 (2^8) ...

  8. OpenCV基础篇之像素操作对照度调节

    程序及分析 /* * FileName : contrast.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Tue 29 ...

  9. 图形绘制 Canvas Paint Path 详解

    图形绘制简介        Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0.大部分2D使用的api都在android.grap ...

随机推荐

  1. 自然语言处理(NLP) - 数学基础(3) - 概率论基本概念与随机事件

    好像所有讲概率论的文章\视频都离不开抛骰子或抛硬币这两个例子, 因为抛骰子的确是概率论产生的基础, 赌徒们为了赢钱就不在乎上帝了才导致概率论能突破宗教的绞杀, 所以我们这里也以抛骰子和抛硬币这两个例子 ...

  2. 使用IDEA的Git插件上传项目教程

    如何使用IDEA的Git插件上传项目 一.在https://www.cnblogs.com/zyx110/p/10799387.html中下载 二.注册码云账号 搜索gitee码云插件并安装

  3. Docker 镜像-管理-导入-导出

    目录 Docker 镜像基本概念 Docker 镜像加速 Docker 镜像 常用命令 Docker 镜像的创建和导出导入 Docker 镜像基本概念 我们使用的容器都是基于镜像的,镜像是由多层组成的 ...

  4. CentOS6 + MapServer7.4编译

    先升级gcc 1.python3.6 ./configure --enable-shared --enable-profiling make –j 20 make install 2.proj-4.9 ...

  5. TinyMCE编辑器图片上传扩展(base64方式),asp.net mvc5

    编辑器上传图片一般都是先上传到服务器中,若是用户取消或忘记提交表单就产生一张废图在空间里面,时间一长就产生大量占用空间的无用图片,现在就试试提交前先用base64,提交后,在后台处理编辑器内容中的&l ...

  6. ASP.NET Web API 2 的返回结果

    HttpResponseMessage IHttpActionResult void 某些其他类型 总结归纳 原文地址:https://www.cnblogs.com/xgzh/p/11208611. ...

  7. RookeyFrame在线新增模块

    今天给大家演示下在线新增模块的功能,在线新增模块跟在vs中写model实体类区别不大,线上新增少了手动初始化的过程,新增后模块同样具备新增.修改.删除.查看.导入.导出.复制.批量编辑.回收站.草稿箱 ...

  8. DEDECMS安全设置怎样做,您就不会说它不安全了

    dedecms是好用,优化也好,就是不安全,个人是这样认为的,今天 闲着没事 整理了一些有助于dedecms网站安全的一些设置,可以说是目前最全的dedecms安全设置! 其一:保持DEDE更新,及时 ...

  9. python3之本地文件模拟登录

    本地文件模拟登录 user.txt文本文件数据格式: username:password #coding:utf-8 #读取数据 userFile = open("user.txt" ...

  10. tkinter中的message

    from tkinter import * root =Tk() root.title("message练习") myText = "2019年12月13日,下午一个人, ...