Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将matlab代码转换为opencv代码_Matlab_Opencv_Image Segmentation_Mat_Image Conversion - Fatal编程技术网

将matlab代码转换为opencv代码

将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代码******************************** *************

我用matlab实现了一个代码,关于将rgb彩色图像转换为双hsv imagescale[0,1],这里是matlab代码

***************/MATLAB代码************************

*****************/结束MATLAB*****************************

接下来,是我的opencv代码

*************opencv代码********************************

**************/末端开放CV***************************************

在我的opencv代码中,我不能像matlab那样获得双重图像,结果非常不同。请帮忙你是说?我想我找到答案了,
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;

}