2017-03-22 13 views
0

イメージを持っています。私は、各ピクセルの値が特定のマージンだけ増加するようにイメージを修正したいと思います。次に、新しく作成したイメージを保存して表示します。イメージの各ピクセルの値を増やす

各ピクセル値を変更しようとしましたが、定数値にしか設定できませんでした。私は、すべてのピクセルが一定である必要はありませんが、その値は(言うことができます)により増加すべき50

#include <iostream> 
#include "opencv2/highgui/highgui.hpp" 

using namespace std; 
using namespace cv; 

int main() 
{ 
    Mat image; 
    image = imread("/home/rohit_136/Desktop/image.jpg",CV_LOAD_IMAGE_UNCHANGED); 
    for (int i = 0; i < image.cols; i++) { 
    for (int j = 0; j < image.rows; j++) { 
     Vec3b intensity = image.at<Vec3b>(j, i)=50 
    } 
    } 
    return 0; 
} 
+0

あなたが書いたコードはコンパイルされません。コードを投稿するときは、実際のコードを投稿してみてください。 – Yakk

答えて

0

Vec3bは3バイト(文字)を含むベクターです。各バイトは個々のBGR(青、緑、赤)またはRGBチャンネルの値を示します。このベクトルをトラバースして、各チャネルを個別に変更する必要があります。私たちはバイトについて話しているので、各バイトは0と255の間の値を取るべきであるので注意してください。オーバーフローを回避するためのしきい値を設定することをお勧めします。

注:アルファチャンネルについて気にしない場合は、画像をCV_LOAD_IMAGE_COLORで読み込むことをおすすめします。これにより、画像がBGR形式で読み込まれるようになります。

関連する問題