Opencv_4_图像像素的读写操作

news/2024/10/21 19:01:50/

1)opencv.hpp 头文件:

#pragma once
#include <opencv.hpp>
using namespace std;
#include <opencv.hpp>
using namespace cv;
using namespace std;
class ColorInvert{
public :
    void pixel_visit(Mat& image);
};

2)opencv.cpp 文件:

void ColorInvert::pixel_visit(Mat& image)
{
    int w = image.cols;
    int h = image.rows;
    int dims = image.channels();
    /*
    for (int row = 0; row < h; row++)
    {
     for (int col = 0; col < w; col++)
        {
         if (dims == 1) {
             int pv = image.at<uchar>(row, col);
             image.at<uchar>(row, col) = 255 - pv;
        }
         if (dims == 3)
         {
             Vec3b bgr = image.at<Vec3b>(row, col);
             image.at<Vec3b>(row, col)[0] = 255 - bgr[0];
             image.at<Vec3b>(row, col)[1] = 255 - bgr[1];
             image.at<Vec3b>(row, col)[2] = 255 - bgr[2];

         }
        }
    }
    */

    for (int row = 0; row < h; row++)
    {
        uchar* current_row = image.ptr<uchar>(row);
        for (int col = 0; col < w; col++)
        {
            if (dims == 1) {
                int pv = *current_row;
                *current_row++ = 255 - pv;
            }
            if (dims == 3)
            {
                *current_row++ = 255 - *current_row;
                *current_row++ = 255 - *current_row;
                *current_row++ = 255 - *current_row;
            }
        }
    }
    imshow("像素读写演示", image);
}

3)main 函数:

#include <iostream>
#include <opencv.hpp>
#include "ColorInvert.h"
using namespace std;
using namespace cv;

int main()
{
    Mat src = imread("E:/2024/Test/opencv/test2.png");
    if (src.empty()) {
        cout << "load pic fail" << endl;
        return -1;
    }
    namedWindow("输入窗口", WINDOW_FREERATIO);
    imshow("输入窗口", src);
    ColorInvert coInvert;
    coInvert.pixel_visit(src);
    //coInvert.colorSpaceInvert(src);

    waitKey(0);
    destroyAllWindows();
}

显示结果如下:


http://www.ppmy.cn/news/1437875.html

相关文章

白杨SEO:2024年短视频怎么做?转型做抖音、快手、视频号等短视频流量难吗?怎么做更好?

短视频怎么做&#xff1f; 短视频怎么做&#xff1f;其实这是一个很宽泛的问题&#xff0c;就等同于赚钱怎么赚更多&#xff0c;一般是纯外行或者小白才会这么问。稍微懂一点会加一些前置或者后置条件&#xff0c; 比如&#xff1a; 抖音短视频流量怎么做&#xff1f; 抖音…

分布式与微服务区别?

1、概念角度&#xff1a; 分布式&#xff1a;把多个应用部署到多台服务器&#xff08;云&#xff09;上&#xff0c;多个应用之间相互协作&#xff0c;提高系统的扩展性和稳定性。 微服务&#xff1a;是分布式的一种实现方式。 2、粒度划分&#xff1a; 分布式&#x…

视频转换器 AnyMP4 Video Converter Ultimate v8.5.52 x64

AnyMP4 Video Converter Ultimate 是一款功能强大的DVD转换器&#xff0c;使用可将DVD电影翻录为MP4&#xff0c;AVI&#xff0c;WMV&#xff0c;MOV&#xff0c;MKV&#xff0c;FLV&#xff0c;MP3等&#xff0c;支持将DVD转换为各种视频和音频&#xff0c;如TS&#xff0c;MP…

短视频矩阵营销系统 poihuoqu 任意文件读取漏洞复现

0x01 产品简介 短视频矩阵营销系统是由北京华益云数据科技有限公司开发的一款产品,这家公司专注于抖音短视频矩阵营销系统的研发,致力于为企业提供全方位的短视频营销解决方案。华益云抖销短视频矩阵系统可以帮助企业快速搭建多个短视频账号,实现内容的批量制作和发布,提高…

科技破壁,盲人出行:实时避障与识别,开启无障碍新生活

身为一名资深记者&#xff0c;我深知盲人朋友在日常出行中面临的重重挑战。然而&#xff0c;随着科技的日新月异&#xff0c;一款名叫蝙蝠避障专为盲人安全出行设计的应用正在以其实时避障与拍照识别功能&#xff0c;为视障群体开辟一条通往无障碍生活的光明大道。 首先…

使用工具速记

文章目录 一、sqlyoy登录账号信息迁移二、idea导入之前的已配置的idea信息三、设置windows UI大小四、其他 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、sqlyoy登录账号信息迁移 工具(sqlyog上面菜单栏)->导入导出详情->选择要导出的账号…

VUE3与Uniapp 二 (响应式变量ref)

<template><!-- 响应式数据变量是双项绑定 --><view>{{num}}</view><view>{{string}}</view><view>{{arry[2]}}</view><view>{{obj.name}}</view> </template><script setup>// 使用ref定义响应式数据…

企业OA管理|基于SprinBoot+vue的企业OA管理系统(源码+数据库+文档)

企业OA管理目录 基于SprinBootvue的企业OA管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 1.1 用户信息管理 1.2 公告信息管理 1.3 客户关系管理 1.4 通讯录管理 2 用户模块的实现 2.1 客户关系添加 2.2 通讯录添加 2.3 日程安排添加 四、…