我想制作一个可以改变图像视图中图像饱和度的滑块。
我目前正在使用 OpenCV。我在网上找到了一些代码并尝试了它。它正在工作,但它的工作方式有点奇怪。图像上有一个白色的杯子,但它的颜色一直是彩虹,不管值如何(除非它是完全灰度的)。
- (IBAction)stSlider:(id)sender {
float value = stSlider.value;
UIImage *image = [UIImage imageNamed:@"sushi.jpg"];
cv::Mat mat = [self cvMatFromUIImage:image];
cv::cvtColor(mat, mat, CV_RGB2HSV);
for (int i=0; i<mat.rows;i++)
{ for (int j=0; j<mat.cols;j++)
{
int idx = 1;
mat.at<cv::Vec3b>(i,j)[idx] = value;
}
}
cv::cvtColor(mat, mat, CV_HSV2RGB);
imageView.image = [self UIImageFromCVMat:mat];
}
这是我使用的代码。请告诉我必须更改哪个部分才能使其正常工作。