opencv Load, Modify, and Save an Image

#include <cv.h>
#include <highgui.h>

using namespace cv;

int main(int argc, char** argv)
 {
	 char* imageName = argv[1];
	
		 Mat image;
	 image = imread(imageName, 1);
	
	 if (argc != 2 || !image.data)
	 {
		 printf(" No image data \n ");
		 return -1;
	 }
	 Mat gray_image;
	 cvtColor(image, gray_image, CV_BGR2GRAY);
	
	 imwrite("../../images/Gray_Image.jpg", gray_image);

	 namedWindow(imageName, CV_WINDOW_AUTOSIZE);
	 namedWindow("Gray image", CV_WINDOW_AUTOSIZE);
	
	 imshow(imageName, image);
	 imshow("Gray image", gray_image);
	
	 waitKey(0);
	
	 return 0;
	
}
Explanation
1. We begin by loading an image using imread, located in the path given by imageName. For this example, assume

you are loading a RGB image.


2. Now we are going to convert our image from BGR to Grayscale format. OpenCV has a really nice function to

do this kind of transformations:


cvtColor( image, gray_image, CV_BGR2GRAY );
As you can see, cvtColor takes as arguments:
• a source image (
image )
• a destination image (
gray_image ), in which we will save the converted image.
• an additional parameter that indicates what kind of transformation will be performed. In this case we use

CV_BGR2GRAY (because of imread has BGR default channel order in case of color images).


3. So now we have our new gray_image and want to save it on disk (otherwise it will get lost after the program
ends). To save it, we will use a function analagous to
imread:
imwrite
imwrite( "../../images/Gray_Image.jpg" , gray_image );
Which will save our gray_image as Gray_Image.jpg in the folder images located two levels up of my current

location.


4. Finally, let’s check out the images. We create two windows and use them to show the original image as well as
the new one:

namedWindow( imageName, CV_WINDOW_AUTOSIZE );
namedWindow(
"Gray image" , CV_WINDOW_AUTOSIZE );
imshow( imageName, image );

imshow( "Gray image", gray_image );


5. Add the waitKey(0) function call for the program to wait forever for an user key press.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值