簡體   English   中英

使用OpenCV將灰度圖像轉換為負圖像

[英]Convert grayscale image to it's negative using OpenCV

我試圖做一個簡單的功能,使用openCV將灰度圖像轉換為負圖像。 下面我有函數的代碼:

#include "stdafx.h"
#include "common.h"
#include <opencv/cv.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
.........................................

void negative_image()
{
    Mat img = imread("Images/cameraman.bmp", CV_LOAD_IMAGE_GRAYSCALE);

    for (int i = 0; i < img.row; i++)
    {
        for (int j = 0; j < img.cols; j++)
        {
            img.at<uchar>(i, j) = 255 - img.at<uchar>(i, j);
        }
    }

    imshow("negative image", img);
    waitKey(0);
}

當我嘗試構建應用程序時,出現以下錯誤:

在此處輸入圖片說明

任何幫助表示贊賞!

OpenCV提供了多種可以在矩陣表達式中組合的矩陣運算 從標量減去矩陣就是其中之一。

因此,在我眼中,一個簡單的將灰度圖像轉換為其負像的函數看起來像這樣:

cv::Mat invert_image(cv::Mat const& input)
{
    return 255 - input;
}

i < img.rows而不是row

您所有的代碼都是正確的,但是它的img.rows不是行,因此正確的代碼是

為(int i = 0; i <img.rows; i ++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM