C++ 伽马波校正
我会对图像进行伽马校正。 所以,我必须用G=0.6对源图像的每个像素强度进行pow。 我有问题,因为目标图像是完全错误的。 当我从源图像中提取像素时,可能我有铸造问题。 这是我的代码:C++ 伽马波校正,c++,opencv,opencv3.0,opencv3.1,C++,Opencv,Opencv3.0,Opencv3.1,我会对图像进行伽马校正。 所以,我必须用G=0.6对源图像的每个像素强度进行pow。 我有问题,因为目标图像是完全错误的。 当我从源图像中提取像素时,可能我有铸造问题。 这是我的代码: #include <opencv2/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> #include <opencv2/imgproc/imgproc.hpp> using
#include <opencv2/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main() {
Mat src = imread("spine1.jpeg");
Mat dst = Mat(src.rows, src.cols, CV_8UC1);
cvtColor(src, src, CV_8UC1);
dst = Scalar(0);
for (int x = 0; x < src.rows; x++) {
for (int y = 0; y < src.cols; y++) {
int pixelValue = (int)src.at<uchar>(x, y);
dst.at<uchar>(x, y) = pow(pixelValue, 0.6);
}
}
namedWindow("Input", CV_WINDOW_AUTOSIZE);
namedWindow("Output", CV_WINDOW_AUTOSIZE);
imshow("Input", src);
imshow("Output", dst);
waitKey(0);
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间cv;
使用名称空间std;
int main(){
Mat src=imread(“spine1.jpeg”);
Mat dst=Mat(src.rows、src.cols、CV_8UC1);
CVT颜色(src、src、CV_8UC1);
dst=标量(0);
对于(int x=0;x
编辑:更改CVT颜色(src、src、CV_8UC1)代码>在
CVT颜色(src,src,颜色为灰色)代码>调用cvtColor
是错误的。你应使用:
cvtColor(src, src, COLOR_BGR2GRAY);
此外,您还可以使代码更简单,更不容易出错:
#include <opencv2/opencv.hpp>
int main()
{
// Load the image as grayscale
cv::Mat1b src = cv::imread("path_to_img", cv::IMREAD_GRAYSCALE);
// Convert to double for "pow"
cv::Mat1d dsrc;
src.convertTo(dsrc, CV_64F);
// Compute the "pow"
cv::Mat1d ddst;
cv::pow(dsrc, 0.6, ddst);
// Convert back to uchar
cv::Mat1b dst;
ddst.convertTo(dst, CV_8U);
// Show results
imshow("SRC", src);
imshow("DST", dst);
waitKey();
return 0;
}
#包括
int main()
{
//将图像加载为灰度
cv::Mat1b src=cv::imread(“路径到img”,cv::imread\U灰度);
//将“pow”转换为双精度
cv::Mat1d dsrc;
src.convertTo(dsrc,CV_64F);
//计算“功率”
cv::Mat1d ddst;
cv::pow(dsrc,0.6,ddst);
//转换回uchar
cv::Mat1b dst;
ddst.转换器(dst,CV_8U);
//显示结果
imshow(“SRC”,SRC);
imshow(“DST”,DST);
waitKey();
返回0;
}
此代码中没有使用pow
。。。你到底想在这里做什么?顺便说一句,cvtColor
是错误的<代码>CVT颜色(src,src,颜色为灰色)对不起,我复制了错误的代码。我编辑了它是的!这是错误!谢谢。很高兴它有帮助,作为答案发布