代码如下:
#include
using namespace std;
void main()
{
int r,c,i,j;
cv::Mat image1 = cv::imread("H:\C++projects\improcess_hw\2.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv::imwrite("Photp_Cal_1.jpg",image1);
cv::namedWindow("IMAGE1");
cv::imshow("IMAGE1", image1);
cv::Mat image2 = cv::imread("H:\C++projects\improcess_hw\1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
r = image2.rows;
c = image2.cols;
for (i = 0;i < r;i++)
for (j = 0;j < c;j++)
image2.at(i,j)= 255-(image2.at(i, j));
cv::imwrite("Photp_Cal_2.jpg",image2);
cv::namedWindow("Image2");
cv::imshow("Image2", image2);
cv::waitKey();
}
提示错误
如果保存为bmp就没有毛病,刚开始学,希望有前辈能够指点一点
查官方文档
关于imread,imwrite函数支持的文件类型是这样描述的:
再看Notes section:
On Microsoft Windows* OS and MacOSX*, the codecs shipped with an OpenCV image (libjpeg, libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs, and TIFFs.
从而得出结论,opencv需要包含libjpeg,这就涉及到编译opencv的问题,你可以用opencv build libjpeg为关键字搜索相关帮助。
折腾,只有折腾才能进步......。