This
tutorial is about how to change the pixel value of an image at a particular
co-ordinate:
Here is the code below:
/*Displaying the Pixel value of the whole Image using Loops*/
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image1,image2;
//Reading the color image
image1 = imread("C:\\Users\\arjun\\Desktop\\image003.png", CV_LOAD_IMAGE_COLOR);
//If image1 not found
if (!image1.data)
{
cout << "No image data \n";
return -1;
}
namedWindow("Original Image"); //Display the original image
imshow("Original Image", image1);
//Changing the pixel value at just a particular point(100,200)
Vec3b color = image1.at<Vec3b>(Point(100,200));
color.val[0] = 100;
color.val[1] = 0;
color.val[2] = 0;
image1.at<Vec3b>(Point(100,200)) = color;
//Save the modified image
imwrite("C:\\Users\\arjun\\Desktop\\mod_image.png",image1);
//Reading the modifed image
image2 = imread("C:\\Users\\arjun\\Desktop\\mod_image.png", CV_LOAD_IMAGE_COLOR);
//If image2 not found
if (!image2.data)
{
cout << "No image data \n";
return -1;
}
namedWindow("Modified Image"); //Display the modified image
imshow("Modified Image", image2);
waitKey(0);
return 0;
}
Link
of the Code:
Original Image:
Modified Image:
Note:
We can
see the difference by subtracting the two images:
The code
for subtracting the two images is shown below:
Here i
have stored the original image in the variable called 'image'.
/*Displaying the Pixel value of the whole Image using Loops*/
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image,image1,image2;
//Reading the color image
image = imread("C:\\Users\\arjun\\Desktop\\image003.png", CV_LOAD_IMAGE_COLOR);
image1 = imread("C:\\Users\\arjun\\Desktop\\image003.png", CV_LOAD_IMAGE_COLOR);
//If image1 not found
if (!image1.data)
{
cout << "No image data \n";
return -1;
}
namedWindow("Original Image"); //Display the original image
imshow("Original Image", image1);
//Changing the pixel value at just a particular point(100,200)
Vec3b color = image1.at<Vec3b>(Point(100,200));
color.val[0] = 100;
color.val[1] = 0;
color.val[2] = 0;
image1.at<Vec3b>(Point(100,200)) = color;
//Subtracting the two image
image1=image-image1;
//Save the modified image
imwrite("C:\\Users\\arjun\\Desktop\\mod_image.png",image1);
//Reading the modifed image
image2 = imread("C:\\Users\\arjun\\Desktop\\mod_image.png", CV_LOAD_IMAGE_COLOR);
//If image2 not found
if (!image2.data)
{ cout << "No image data \n";
return -1; }
namedWindow("Modified Image"); //Display the modified image
imshow("Modified Image", image2);
waitKey(0);
return 0;
}
Link of the Code:
https://drive.google.com/file/d/0B9Mnn6QWcwVnTTd1OEhVUEF2S3M/view?usp=sharing
Original Image:
Modified Image:
Notice the white dot in the black image.




No comments:
Post a Comment