Подправил код.
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#include <imgproc\imgproc.hpp>
#include <imgproc\imgproc_c.h>
int _tmain(int argc, _TCHAR* argv[])
{
cv::Mat img= cv::imread("D:\\508.jpeg");
cv::imshow("Before",img);
for(int i=1; i<img.rows-1; i++)
for(int j=1; j<img.cols-1; j++)
{
img.at<uchar>(i,j)= img.at<uchar>(i+1,j)-img.at<uchar>(i,j);
if(img.at<uchar>(i,j)<0)
img.at<uchar>(i,j)*(-1);
//img.at<uchar>(i,j)=127+0.5*img.at<uchar>(i,j);
}
cv::imshow("After",img);
cvWaitKey(0);
return 0;
}
ПРоблема в следующем: Картинка изменяется не вся, а только часть(картинка прилогается). Можете помочь, чтобы она изменялась вся полностью.
И еще проблема: на левой и верхней границе картинки остаются пиксели из оригинальной фотографии.
Цикл прохода по значениям пикселей делал ттаким образом
for(int i=0; i<img.rows; i++)
for(int j=0; j<img.cols; j++)
{
img.at<uchar>(i,j)= img.at<uchar>(i+1,j)-img.at<uchar>(i,j);
if(img.at<uchar>(i,j)<0)
img.at<uchar>(i,j)*(-1);
}
Но вылетала ошибка. Можете еще помочь справить этот баг.
Заранее спасибо!