像素操作

#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. EF Core 根据已有的数据库来生成 EF 领域模型

    1. 如图: 2. 命令 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrame ...

  2. 北京麒麟会GITC

    分享ppt:https://pan.baidu.com/s/1Aerqtbi8VpMiFGhfEMUtPQ http://bj.thegitc.com/#meeting-agenda

  3. js函数定义及一些说明

    1.javascript定义函数的三种方法一.function语句//这个方法比较常用function fn(){ alert("这是使用function语句进行函数定义");}f ...

  4. Python简单的get和post请求

    1.json 模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. ...

  5. JVM指令手册

    JVM指令大全 常量入栈指令 指令码 操作码(助记符) 操作数 描述(栈指操作数栈) 0x01 aconst_null null值入栈. 0x02 iconst_m1 -1(int)值入栈. 0x03 ...

  6. IOS疯狂基础之观察者模式

    转自:http://blog.csdn.net/wudizhukk/article/details/8981535 一.KVO Key-Value Observing,它提供一种机制,当指定的对象的属 ...

  7. 章节十四、3-执行JavaScript命令

    一.网页页面都是由html+css和javaScript组成的,如果页面中没有javaScript的存在,就不会有操作动作的执行,例如页面上你点击的按钮或者链接都离不开javaScript.(这一节不 ...

  8. 转:Oracle的列转行函数:LISTAGG()

    先看示例代码: with temp as( select 'China' nation ,'Guangzhou' city from dual union all select 'China' nat ...

  9. Ubuntu14 关机重启、版本、网络、防火墙

    关机.重启: 立即关机:halt.poweroff.shutdown -h now 延迟关机:shutdown -h 10  十分钟后关机 立即重启:reboot.shutdown -r now 延迟 ...

  10. Codeforces Round #303 (Div. 2)(CF545) E Paths and Trees(最短路+贪心)

    题意 求一个生成树,使得任意点到源点的最短路等于原图中的最短路.再让这个生成树边权和最小. http://codeforces.com/contest/545/problem/E 思路 先Dijkst ...