function [img_out] = hist_sep(img_in) %applying histogram equalization on R,G,B channels separately %recomposing img_out(:,:,1)=histeq(img_in(:,:,1)); img_out(:,:,2)=histeq(img_in(:,:,2)); img_out(:,:,3)=histeq(img_in(:,:,3)); end
时间: 2023-08-21 07:06:44 浏览: 88
好的,下面是将你的Matlab代码转换为C++的代码:
```cpp
#include <iostream>
#include <opencv2/opencv.hpp>
cv::Mat hist_sep(const cv::Mat& img_in) {
// Applying histogram equalization on R, G, B channels separately
std::vector<cv::Mat> channels;
cv::split(img_in, channels);
cv::Mat img_out;
cv::equalizeHist(channels[0], img_out); // Red channel
cv::equalizeHist(channels[1], img_out); // Green channel
cv::equalizeHist(channels[2], img_out); // Blue channel
// Recomposing
cv::merge(channels, img_out);
return img_out;
}
int main() {
// Example usage
cv::Mat img_in = cv::imread("input_image.jpg"); // Load input image
// Call the hist_sep function
cv::Mat img_out = hist_sep(img_in);
// Display the output image
cv::imshow("Output Image", img_out);
cv::waitKey(0);
return 0;
}
```
请注意,上述代码使用了OpenCV库来处理图像。你需要在编译环境中安装OpenCV,并将其链接到你的项目中。另外,请在主函数`main`中修改输入图像的路径和名称。
希望对你有所帮助!如果还有其他问题,请随时提问。
阅读全文