string image_path = "/Users/zhangbenxing/PycharmProjects/test_std_stream/xx.png"
std::ifstream input
input.open(image_path, std::ios::binary)
std::vector<unsigned char>data(std::istreambuf_iterator<char>(input), {})
std::vector<uchar>vectordata(data.begin(),data.end())
cv::Mat data_mat(vectordata, true)
cv::Mat image(cv::imdecode(data_mat,1))
cv::imwrite("/Users/zhangbenxing/PycharmProjects/test_std_stream/ss.png", image)
}
可能是台式和笔记本的分辨率不一样,可以设置相同分辨率试试。
首先是水印图片的大小调整,之后创建和原图大小一致的掩膜,然后将水印添加到掩膜的某个位给置,最后将掩膜与原图融合。
调整到特定值
将图片的水平像素数量将指定的图片以水印的形式添加到图片右下角将指定的图片以水印的形式添加到图片中间以上所有功能均需要OpenCV库的支持请使用只支持英文,所以输入的路径中不能包含中文,图片文件名也不能含有中文这是由于OpenCV库仍然用的是GBK编码,在遇到规范的编码时会出现错误。目前网上好像有解决方案,但是也只对OpenCV某些功能有用,而且应该只针对一台电脑有效换台电脑要重新修改。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)