在完善的C++库(如OpenCV)中添加或修改单个类方法的最佳实践是什么,同时仍然重用其余的库代码,最好是lib格式.
在这一点上,我知道的唯一方法是将属于特定库的所有源文件和头文件(比如OpenCV的核心库)复制到当前源文件夹,修改那个函数并使用其余代码重新编译模块.理想情况下,我希望能够以它们的方式链接所有当前.lib文件,但只需为我在这些库中定义的类定义一个新方法(或修改当前方法),方法的实现取代默认库文件的实现.
继承似乎并不总是一种选择,因为有时基类具有正确继承的类实现所需的私有成员.
什么是"着色"灰度图像的直接方法.通过着色,我的意思是将灰度强度值移植到新图像中的三个R,G,B通道之一.
例如,当图片被彩色化为"蓝色"时8UC1,强度为的灰度像素I = 50应成为强度的8UC3彩色像素BGR = (50, 0, 0).
例如,在Matlab中,可以使用两行代码简单地创建我要求的内容:
color_im = zeros([size(gray_im) 3], class(gray_im));
color_im(:, :, 3) = gray_im;
Run Code Online (Sandbox Code Playgroud)
但令人惊讶的是,我在OpenCV中找不到类似的东西.