将matlab代码转换为opencv代码
我用matlab实现了一个代码,关于将rgb彩色图像转换为双hsv imagescale[0,1],这里是matlab代码 ***************/MATLAB代码************************ *****************/结束MATLAB***************************** 接下来,是我的opencv代码 *************opencv代码******************************** **************/末端开放CV*************************************** 在我的opencv代码中,我不能像matlab那样获得双重图像,结果非常不同。请帮忙你是说?我想我找到答案了,将matlab代码转换为opencv代码,matlab,opencv,image-segmentation,mat,image-conversion,Matlab,Opencv,Image Segmentation,Mat,Image Conversion,我用matlab实现了一个代码,关于将rgb彩色图像转换为双hsv imagescale[0,1],这里是matlab代码 ***************/MATLAB代码************************ *****************/结束MATLAB***************************** 接下来,是我的opencv代码 *************opencv代码******************************** *************
clc;
close all;
clear all;
img_orig=imread('test.bmp');
img=img_orig; %copy of original image
hsv=rgb2hsv(img);
h=hsv(:,:,1);
s=hsv(:,:,2);
[r c v]=find(h>0.5 | s<=0.5 | s>0.9);
numid=size(r,1);
for i=1:numid
img(r(i),c(i),:)=0;
end
figure,imshow(img);
int main(){
Mat_<double> img;
Mat_<double> img_hsv;
img = imread("test.bmp", CV_64F);
cvtColor(img, img_hsv, CV_RGB2HSV);
img.convertTo(img_hsv, CV_64F);
for (int y = 0; y < img.rows; y++)
{
for (int x = 0; x < img.cols; x++)
{
Vec3b color = img_hsv.at<Vec3b>(Point(x, y));
if (color[0] > 90 | color[1] <=32 | color[1] > 230){
color[0] = 255;
color[1] = 255;
color[2] = 255;
}
img_hsv.at<Vec3b>(Point(x, y)) = color;
printf("%f\n", img_hsv.at<double>(x, y));
}
}
system("pause");
imshow("image", image);
imshow("image2", img_hsv);
waitKey(0);
return 0;
}