• 改变像素


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

    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
    ", 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;
    }
    


    结果图:

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





  • 相关阅读:
    k8s之StatefulSet介绍(六)
    k8s之Deployment 声明式地升级应用(五)
    k8s 挂载卷介绍(四)
    k8s 之service资源介绍(三)
    k8s几种pod的控制器
    k8s 初识pod (二)
    k8s的常用命令(一)
    k8s 学习笔记
    aws centos系统磁盘扩容
    mac更改launchpad图标大小
  • 原文地址:https://www.cnblogs.com/pangblog/p/3324834.html
Copyright © 2020-2023  润新知