gpt4 book ai didi

c++ - 如何计算二维对数色度?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:50 26 4
gpt4 key购买 nike

我的目标是去除图像中的阴影。我使用 C++ 和 OpenCV。当然,我缺乏足够的数学背景,而且母语不是英语,所以一切都更难理解。

在阅读了去除阴影的不同方法后,我找到了适合我的方法,但它依赖于他们称为“2D 色度”和“2D 对数色度空间”的东西"但即使是这个术语在不同的来源中似乎也不一致。主题论文很多,这里只列出几篇:

http://www.cs.cmu.edu/~efros/courses/LBMV09/Papers/finlayson-eccv-04.pdf http://www2.cmp.uea.ac.uk/Research/compvis/Papers/DrewFinHor_ICCV03.pdf http://www.cvc.uab.es/adas/publications/alvarez_2008.pdf http://ivrgwww.epfl.ch/alumni/fredemba/papers/FFICPR06.pdf

我通过搜索正确的词和解释将 Google 撕成碎片。我找到的最好的是 Illumination invariant image这对我没有太大帮助。

我尝试重复第一篇论文第 3 页中描述的公式 log(G/R)log(B/R) 以获得类似于 2b 的图形。

enter image description here

作为输入,我使用了 http://en.wikipedia.org/wiki/File:Gretag-Macbeth_ColorChecker.jpg

我得到的输出是 log-chromacity

我的源代码:

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>

using namespace std;
using namespace cv;

int main( int argc, char** argv ) {
Mat src;

src = imread( argv[1], 1 );

if( !src.data )
{ return -1; }

Mat image( 600, 600, CV_8UC3, Scalar(127,127,127) );

int cn = src.channels();
uint8_t* pixelPtr = (uint8_t*)src.data;

for(int i=0 ; i< src.rows;i++) {
for(int j=0 ; j< src.cols;j++) {
Scalar_<uint8_t> bgrPixel;
bgrPixel.val[0] = pixelPtr[i*src.cols*cn + j*cn + 0]; // B
bgrPixel.val[1] = pixelPtr[i*src.cols*cn + j*cn + 1]; // G
bgrPixel.val[2] = pixelPtr[i*src.cols*cn + j*cn + 2]; // R
if(bgrPixel.val[2] !=0 ) { // avoid division by zero
float a= image.cols/2+50*(log((float)bgrPixel.val[0] / (float)bgrPixel.val[2])) ;
float b= image.rows/2+50*(log((float)bgrPixel.val[1] / (float)bgrPixel.val[2])) ;
if(!isinf(a) && !isinf(b))
image.at<Vec3b>(a,b)=Vec3b(255,2,3);
}
}
}

imshow("log-chroma", image );
imwrite("log-chroma.png", image );
waitKey(0);

我遗漏或误解了什么?

最佳答案

通过阅读论文Recovery of Chromaticity Image Free from Shadows via Illumination Invariance你发布的代码和你的代码,我想问题是你的坐标系(X/Y 轴)是线性的,而在论文中坐标系是 log(R/G) by log(B/G)。

关于c++ - 如何计算二维对数色度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23282856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com