cruxopen / openisp Goto Github PK
View Code? Open in Web Editor NEWImage Signal Processor
License: MIT License
Image Signal Processor
License: MIT License
Thanks for your great work;
I want to ask if there any more test raw images,like sensor hdr raw imags or video sequence images?
I want to develop isp algorithms based on your work, thanks!
The conversion matrix is [0.257 0.504 0.098 16; -0.148 -0.291 0.439 128; 0.439 -0.368 -0.071 128]. What is this standard of your implementation?
In addition, have you implemented lens shading correction?
Thank you.
Hi Crux,
I meet a issue about "hsc.py":
False Color Suppresion Done......
Traceback (most recent call last):
File "isp_pipeline.py", line 308, in
yuvimg_hsc = hsc.execute()
File "/autohome/user/chayi/workspace/ISP/openISP-master/model/hsc.py", line 35, in execute
hsc_img[y,x,0] = self.saturation * (self.hsc_img[y,x,0] - 128) / 256 + 128
AttributeError: 'HSC' object has no attribute 'hsc_img'
Then, i change two lines as below and PASS:
hsc_img[y,x,0] = self.saturation * (self.hsc_img[y,x,0] - 128) / 256 + 128
hsc_img[y,x,1] = self.saturation * (self.hsc_img[y,x,1] - 128) / 256 + 128
As similar as a issue in "bcc.py":
Hue/Saturation Adjustment Done......
Traceback (most recent call last):
File "isp_pipeline.py", line 316, in
yuvimg_bcc = bcc.execute()
File "/autohome/user/chayi/workspace/ISP/openISP-master/model/bcc.py", line 24, in execute
bcc_img[y,x] = self.bcc_img[y,x] + (self.bcc_img[y,x] - 127) * self.contrast
AttributeError: 'BCC' object has no attribute 'bcc_img'
Then, i change above line as below and PASS:
bcc_img[y,x] = bcc_img[y,x] + (bcc_img[y,x] - 127) * self.contrast
Please reference above and check whether my change is as your wish (want to change).
Thanks, have a nice day.
-chayi
Please tell me how to modify the parameters if it is 12-bit raw data
Hi,
I found the openISP very interesting. While I am able to understand part of the code, I still get confused about some of the algorithms, and why it is done in one way or another. For example, the edge enhancement part and the chroma suppression part after demosaic. Can you share a little bit more about the algorithm so that I can better understand your code? Or where i can find the algorithms online.
Thanks a lot,
jun
There is an overflow warning in while running python isp_pipeline.py
with default raw image.
/openISP/model/bnf.py:33: RuntimeWarning: overflow encountered in ushort_scalars
rdiff[i,j] = abs(img_pad[y+i,x+j] - img_pad[y+2, x+2])```
Hi Crux,
How do you get the BLC params?
Best Regards,
Cherry
code read
p0 = img_pad[y + 2, x + 2]
p1 = img_pad[y, x]
peper read
p0 in [y, x]
p1 in [y + 2, x + 2]
Excuse me, which one is right ??
Hello! My name is Michal, and I'm the CEO of OpenISP, which is working to deliver low cost, high speed internet and connectivity at affordable rates to underserved individuals and businesses in the Greater Los Angeles area who would otherwise be unable to pay for access to this critical service.
I noticed that we are both listed in SERPs for "openisp", and I was wondering if you were open in renaming the project to help my organization better reach our audience, since we are competing for the same search term right now. As a software engineer myself I really value your open source contribution of this image processing library, and I see (based on forks/stars 😄) many others do as well, and I want to make sure that both our projects get fair online visibility.
Thank you for your consideration.
I'm wondering that why most of courses suggest us to do AWB before CFA. In RAW space, the image is a grayscale image because RGB channels are derived from CFA algorithm.
Could you please tell me how to understand this step correctly?
hello,I‘m wondering what is chroma noise filtering come from , why do we need this one ,is there any paper to cover it, appreciate your feedback
Hi "Crux",
From the openISP project tree structure, i see a "hardware".
**_hardware: is remained for the hardware implementation (Verilog/Chisel) of ISP algorithms and SoC._**
May I refer to the contents of this hardware directory?
( If can't give, it's all right. You have been very helpful to provide such a project for my reference. ^ ^ )
Thank you for considering my request.
chayi
Line 35 in 14034f3
hsc_img[y,x,0] = (self.img[y,x,0] - 128) * lut_cos[self.hue] + (self.img[y,x,1] - 128) * lut_sin[self.hue] + 128
hsc_img[y,x,1] = (self.img[y,x,1] - 128) * lut_cos[self.hue] - (self.img[y,x,0] - 128) * lut_sin[self.hue] + 128
hsc_img[y,x,0] = self.saturation * (self.img[y,x,0] - 128) / 256 + 128
hsc_img[y,x,1] = self.saturation * (self.img[y,x,1] - 128) / 256 + 128
The hsc_img[y,x,0] and hsc_img[y,x,1] in the first two lines are not used. is it correct?
I am confused whether cnf (chroma noise filter) works cause it uses a weird algorithm which i know, coming from a patent.Have you tried to figure out the effectiveness of chroma noise filter?thanks!
1] What is the basis of selecting the mode(mean, gradient) of dead pixel correction?
2] Why in Mean and Gradient correction method and in dead pixel detection
, the immediate adjacent pixel from adjacent row and adjacent column
is not considered? P1,P2,P3,P4,P5,P6,P7 and P8 are the pixel next to the adjacent pixel of the to-be-tested pixel.
"elif bayer_pattern == 'bggr'" ====> "elif self.bayer_patter == 'bggr'"
"elif bayer_pattern == 'gbrg'" ====> "elif self.bayer_patter == 'gbrg'"
"elif bayer_pattern == 'grbg'" ====> "elif self.bayer_patter == 'grbg'"
Hi Crux,
According the context, I think you maybe want to get the value of "self.bayer_pattern" to decide which way to do blc rather than "bayer_pattern".
Thanks!
Yayong
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.