当前位置: 首页 > news >正文

改变像素

接上一篇,改变像素色点还需要的知识:

Get*D

返回特殊的数组元素

CvScalar cvGet1D( const CvArr* arr, int idx0 );
CvScalar cvGet2D( const CvArr* arr, int idx0, int idx1 );
CvScalar cvGet3D( const CvArr* arr, int idx0, int idx1, int idx2 );
CvScalar cvGetND( const CvArr* arr, int* idx );
arr
输入数组.
idx0
元素下标第一个以0为基准的成员
idx1
元素下标第二个以0为基准的成员
idx2
元素下标第三个以0为基准的成员
idx
元素下标数组

函数cvGet*D 返回指定的数组元素。对于稀疏数组如果需要的节点不存在函数返回0 (不会创建新的节点)



Set*D
修改指定的数组

void cvSet1D( CvArr* arr, int idx0, CvScalar value );
void cvSet2D( CvArr* arr, int idx0, int idx1, CvScalar value );
void cvSet3D( CvArr* arr, int idx0, int idx1, int idx2, CvScalar value );
void cvSetND( CvArr* arr, int* idx, CvScalar value );
arr
输入数组
idx0
元素下标的第一个成员,以0为基点
idx1
元素下标的第二个成员,以0为基点
idx2
元素下标的第三个成员,以0为基点
idx
元素下标数组
value
指派的值
函数 cvSet*D 指定新的值给指定的数组元素。对于稀疏矩阵如果指定节点不存在函数创建新的节点 


 

// 像素的读写.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "opencv2/opencv.hpp"

int _tmain(int argc, _TCHAR* argv[])
{
	IplImage* image= cvLoadImage("F:\\Opencv_picture\\05.jpg", 1);
	CvScalar pixel;

	cvNamedWindow("Picture");

	for(int i=0; i< image->height; i++)
	{
	      for(int j=0; j<image->width; j++)
		  {
		      //获取像素的BGR,并显示
			  pixel= cvGet2D(image, i, j);
			  //打印BGR
			  printf("B= %f, G= %f, R= %f\n", pixel.val[0], pixel.val[1], pixel.val[2]);
              //修改各点的值RGB(0, 0, 0)改为黑色的像素
			  pixel.val[0]= 255;
			  pixel.val[1]= 255;
			  pixel.val[2]= 255;
			   //用cvGet2D改变像素点
			  cvSet2D(image, i, j, pixel);    
              //改变像素点就显示改变的图像
			  cvShowImage("Picture", image);
			  //延时
	          cvWaitKey(1);      
		  }
	}
	cvReleaseImage(&image);
	cvDestroyWindow("Picture");

	return 0;
}


结果图:

 

图片的像素点被慢慢的改为黑色





 

转载于:https://www.cnblogs.com/pangblog/p/3324834.html

相关文章:

  • Unix目录结构的来历
  • Localizing WPF with .resx files
  • 转载:进程上下文、中断上下文及原子上下文
  • fstream, operator, operator
  • 图像检索(2):均值聚类-构建BoF
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • c# is和as的区别
  • 各种面试题 挺好 挺重要 项目中 有用 的地方
  • Nginx 1.正向代理与反向代理
  • C++ 运行单个实例,防止程序多次启动
  • systemC的安装
  • 利用hadoop来解决“共同好友”的问题
  • zabbix监控apache
  • 创建Windows窗体 : WinMain() 与 WndProc()
  • 不要再被骗了------QQ盗号原理大揭秘
  • Docker入门(二) - Dockerfile
  • Fastjson的基本使用方法大全
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java面向对象及其三大特征
  • js 实现textarea输入字数提示
  • overflow: hidden IE7无效
  • python大佬养成计划----difflib模块
  • Service Worker
  • 京东美团研发面经
  • 那些年我们用过的显示性能指标
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端临床手札——文件上传
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用SAX解析XML
  • 通信类
  • 新手搭建网站的主要流程
  • 由插件封装引出的一丢丢思考
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 如何在招聘中考核.NET架构师
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​业务双活的数据切换思路设计(下)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (9)STL算法之逆转旋转
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (接口自动化)Python3操作MySQL数据库
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • .gitignore文件---让git自动忽略指定文件
  • .net core 控制台应用程序读取配置文件app.config
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .Net中ListT 泛型转成DataTable、DataSet
  • [ 数据结构 - C++]红黑树RBTree
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [codevs 2822] 爱在心中 【tarjan 算法】
  • [CTF]php is_numeric绕过
  • [HNOI2018]排列