利用CImg对单通道进行复杂修改
Complex modification of single channel using CImg
使用CImg图像处理库,我试图实现一些相当微不足道的东西。我想做一些复杂的修改(包括中间步骤和副本),只有HSI图像的强度通道。目前,我的方法是分离强度通道并对其进行处理。然而,最后我将不得不以某种方式将结果反馈回原始图像-我不知道如何实现这一点。
在下面的代码示例中可以看到,我尝试将修改后的强度结果转换回单通道无符号char CImg intensity_result
,并简单地将其分配给原始图像的强度通道。但是当我试图显示结果时,程序崩溃了,说:
…img::HSItoRGB(): Instance is not a HSI image.
CImg<unsigned char> image = CImg<>("pic_small.jpg").normalize(0,255);
CImg<> HSIimage = image.get_RGBtoHSI();
CImg<> intensity = HSIimage.get_channel(2);
// ... intensity_modified = .... (intensity)
CImg<unsigned char> intensity_result = intensity_modified.get_normalize(0,255);
HSIimage.channel(2) = intensity_result;
HSIimage.get_HSItoRGB().display();
使用CImg<T>::draw_image()
将图像绘制到另一个图像的(部分)中:
CImg<> HSI, I; // Assuming these are already filled images.
HSI.draw_image(0,0,0,2,I); // Put content of I into HSI (at channel #2).
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 函数复杂度分析
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 独立读取-修改-写入顺序
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 修改函数中的指针(将另一个指针作为参数传递)
- 为什么我可以通过引用修改常量返回
- 对于结构,表达式必须是可修改的ivalue
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 为什么不能修改对象中的值?另外,我如何改进此链表?
- 修改创建帐户程序
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 如何从子成员函数修改父公共成员变量
- 修改 VS Code 中的默认C++代码段
- 为什么在我的函数类型后使用引用运算符 (&) 允许我修改它返回的值?
- 如何使用递归打印修改后的星号三角形图案
- 在C++中修改字符串的BigO时间复杂度是多少
- 修改C++ unordered_map中复杂类型的值
- 利用CImg对单通道进行复杂修改