OpenCV C++ 图片api (2

高动态图片 HDR

Ptr<CalibrateDebevec> calibrate = createCalibrateDebevec(); 
calibrate->process(images, response, times);
//
Ptr<MergeDebevec> merge_debevec = createMergeDebevec(); merge_debevec->process(images, hdr, times, response);
image.png

色调映射 Tone mapping

hdr=hdrread('hdr.hdr');
rgb=tonemap(hdr);
imshow(rgb);
image.png

对齐 Alignment

vector<Mat> images_(images);
Ptr<AlignMTB> align=createAlignMTB(4);// 4=max 16 pixel shift
align->process(images_, images);

曝光融合 Exposure fusion

Mat fusion;
Ptr<MergeMertens> merge_mertens = createMergeMertens();
merge_mertens->process(images, fusion); // fusion is a
fusion=fusion*255; // float. point image w. values in [0..1]
imwrite("fusion.png", fusion);
image.png

无缝克隆 Seamless cloning

Mat source = imread("source1.png", IMREAD_COLOR);
Mat destination = imread("destination1.png", IMREAD_COLOR);
Mat mask = imread("mask.png", IMREAD_COLOR);
imshow("source", source);
imshow("mask", mask);
imshow("destination", destination);
Mat result;
Point p; // p will be near top right corner
p.x = (float)2*destination.size().width/3;
p.y = (float)destination.size().height/4;
seamlessClone(source, destination, mask, p, result, NORMAL_CLONE); imshow("result", result);
image.png

去色 Decolorization

cvtColor(source, grayscale, COLOR_BGR2GRAY);

decolor(source,decolorized,dummy);
image.png

非真实渲染 Non-photorealistic rendering

原图


默认

边缘保护 edgePreservingFilter


edgePreservingFilter

细节增强 detailEnhance


detailEnhance

铅笔草图 pencilSketch


pencilSketch

风格化 stylization


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容