Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 19555

Pixel-wise subtraction of image

$
0
0
So I am trying to multiply an intensity image with 0.5 and subtract it from each color channel using pixel wise operations like `ptr` and check that the values do not become negative, i.e. the new (R, G, B) values are (max(R − 0.5I, 0), max(G − 0.5I, 0), max(B − 0.5I, 0)). I am an OpenCV novice, here's the code I came up with (obviously doesn't work). Any pointers will be really helpful: void pixelwiseSubtraction(Mat& bgrImg, Mat& grayImg, Mat& result) { cvtColor(bgrImg, grayImg, CV_BGR2GRAY); Mat gray_half; cvtColor(grayImg * 0.5, gray_half, CV_GRAY2BGR); if(true){ for (int i = 0; i < gray_half.rows; ++i) { // point to first color in row uchar* pixel = gray_half.ptr(i); uchar* bgr_pixel = bgrImg.ptr(i); for (int j = 0; j < gray_half.cols; ++j) { bgr_pixel -= pixel; } } } result = bgrImg; } I have an `error: invalid conversion from ‘int’ to ‘uchar* {aka unsigned char*}’ [-fpermissive] bgr_pixel -= pixel;` error. How can I do the operation? The not pixel-wise version is this: void subtractIntensityImage(Mat& bgrImg, Mat& grayImg, Mat& result) { cvtColor(bgrImg, grayImg, CV_BGR2GRAY); Mat gray_half; cvtColor(grayImg * 0.5, gray_half, CV_GRAY2BGR); // 2. subtract that from original: subtract(bgrImg, gray_half, result); } Thanks.

Viewing all articles
Browse latest Browse all 19555

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>