我原来的问题
我读到要将RGB像素转换为灰度RGB,应该使用
r_new = g_new = b_new = r_old * 0.3 + g_old * 0.59 + b_old * 0.11
Run Code Online (Sandbox Code Playgroud)
我也阅读并理解,它g具有更高的权重,因为人眼对绿色更敏感.实现这一点,我看到结果与在像Gimp这样的图像编辑器中将图像设置为"灰度"时的结果相同.
在我读到这篇文章之前,我想象要将像素转换为灰度,将其转换为HSL或HSV,然后将饱和度设置为零(因此,删除所有颜色).然而,当我这样做时,我得到了一个完全不同的图像输出,即使它也缺少颜色.
如何s = 0准确地从"正确"的方式我读不同,为什么它"不正确"?
基于答案和其他研究的持续发现
似乎使用哪个亮度系数是一些争论的主题.各种组合和灰度算法具有不同的结果.以下是电视标准等领域中使用的一些预设:
0.299r + 0.587g + 0.114b0.2126r + 0.7152g + 0.0722b(1/3)(rgb)相当于s = 0这篇科学文章详细介绍了各种灰度技术及其各种图像的结果,以及对119人的主观调查.
然而,当将图像转换为灰度时,为了实现"最佳"艺术效果,几乎肯定不会使用这些预定义系数,而是调整每个通道的贡献以产生特定图像的最佳输出.
我可以理解zip()函数用于构造这样的元组列表:
x = ['a', 'b', 'c']
y = ['x', 'y', 'z', 'l']
lstTupA = zip(x,y)
Run Code Online (Sandbox Code Playgroud)
lstTupA会的[('a', 'x'), ('b', 'y'), ('c', 'z')].
lstA, lstB = zip(*lstTupA)
Run Code Online (Sandbox Code Playgroud)
上述操作中提取keys的元组的列表lstA和values在元组的列表中lstB.
lstA是('a', 'b', 'c')和lstB是('x', 'y', 'z').
我的疑问是:为什么lstA和lstB元组而不是列表?a,b并且c是同质的,所以x,y和z.将它们组合为元组是不合逻辑的,是吗?
理想的情况下lstA, lstB = zip(*lstTupA)应该分配['a', 'b', 'c']给lstA和 …
任何人都可以解释一下mpeg-ts的工作原理.我已经完成了规范文档,但没有理解为什么将多个流组合在一起形成一个流.
我还使用媒体信息工具打开了一个.ts文件,而对于Audio,它显示了2个音频流.那么在播放内容时将使用哪个音频流.
我正在使用一个自定义列表视图.当我点击listview时,我没有获得onClick事件.
这是我的代码.
lvlList = (ListView)findViewById(R.id.lvlList);
lvlList.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> a, View v,int position, long id)
{
Toast.makeText(getBaseContext(), "Click", Toast.LENGTH_LONG).show();
}
});
lvlList.setAdapter(new OrderAdapter(getBaseContext()));
Run Code Online (Sandbox Code Playgroud)
private class OrderAdapter extends BaseAdapter
{
private LayoutInflater mInflater;
public OrderAdapter(Context context)
{
mInflater = LayoutInflater.from(context);
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
convertView = mInflater.inflate(R.layout.example, null);
holder = new ViewHolder();
holder.txtTest = (TextView) convertView.findViewById(R.id.txtTest);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试为具有不同参数的行连续调用两次的方法设置异常.像这样:
var adapter = new Mock<IKeyAdapter>();
adapter.Setup(x => x.ImportKey(It.IsAny<Guid>(), key, It.IsAny<string>(), publicTicket)).Returns(Guid.NewGuid());
adapter.Setup(x => x.ImportKey(It.IsAny<Guid>(), key, It.IsAny<string>(), privateTicket)).Returns(Guid.Empty);
Run Code Online (Sandbox Code Playgroud)
我不是第一个通过,第二个失败.目前似乎第二个设置覆盖了第一个.
Moq可以实现吗?
我正在研究如何在双向链表的第一个节点之前插入一个新节点.我对此操作所需的辅助节点以及执行操作的步骤顺序感到困惑.我会很感激如何解决这个问题,即我的insertBeforeFirst方法有什么问题.现在,该方法导致nullPointerException,我发现很难解决.(注意:这是以前帖子的后续内容.)
public DLL()
{
header = null ;
tail = null ;
}
...
DLL myList = new DLL() ;
DLLNode A = new DLLNode("Hello", null, null) ;
DLLNode B = new DLLNode("Hi", null, null) ;
...
myList.addFirst(A) ;
myList.insertBeforeFirst(B)
...
public void addFirst(DLLNode v)
{
v.pred = header ;
v.succ = tail ;
header = v ;
tail = v ;
}
...
public void insertBeforeFirst(DLLNode v)
{
DLLNode …Run Code Online (Sandbox Code Playgroud) Internet Explorer 9今天发布了,我决定查看我们在过去几个月内建立的几个Magento站点,看看是否所有内容都能继续使用新版本.
但不幸的是,它没有.我遇到了一个特殊问题,这个问题是由Magento 1.6.0.3版本附带的原型库版本引起的.
看起来事件处理程序中的取消事件不起作用.
例如,如果您尝试登录Magento商店,并且只将登录名和密码字段留空,IE9即使出现错误也会提交表单,并且刷新后错误消失.
所以这是我认为的一个很大的问题.
所以我的问题是:我们如何处理这个问题?我看到了几种处理这个问题的方法:
等待一个新的Magento发布不是一个好主意,因为它可能需要几个星期才有一个,并且因为如果你运行的是非常旧版本的Magento,它将导致很多其他问题.
升级到最新的原型库可能是最好的想法,但Magento中的所有内容都将继续使用最新版本的原型,有没有人有这方面的经验?
那么每个人对这个问题的看法是什么?除了我以外的任何想法?
我想要找到的是在下表中为每个单独的td应用一些样式的正确语法:
<section id="shows">
<!-- HTML5 section tag for the shows 'section' -->
<h2 class="gig">Shows</h2>
<ul class="gig">
<!-- Start the table -->
<table>
<tr>
<!-- Setup the header row -->
<th>When</th>
<th>Where</th>
<th>Start</th>
<th>Finish</th>
</tr>
<?php
// some PHP to fetch all the gig entries from the shows table
$shows_query = "SELECT * FROM shows ORDER BY date ASC";
$shows = mysql_query($shows_query);
// a loop to place all the values in the appropriate table cells
while ($show = mysql_fetch_array($shows)){
//begin the …Run Code Online (Sandbox Code Playgroud) 我正在使用下面的代码批量插入30000行(一次1000行).它仍然没有那么快.在这个例子中提高SQLite的INSERT每秒性能?我可以看到他们只创建了SqliteCommand一次,然后重新循环它重置它并清除绑定.但是,我无法在iOS/Monotouch上找到合适的方法.没有Reset()或ClearBindings()任何其他类似的东西.
using ( var oConn = new SqliteConnection ( "Data Source=" + DB_NAME ) )
{
oConn.Open ( );
// Wrap the whole bulk insertion into one block to make it faster, otherwise one transaction per INSERT would be created.
// Note that this is differen from "BEGIN TRANSACTION" which would increase memory usage a lot!
SqliteCommand oCmd = new SqliteCommand ( "BEGIN", oConn );
oCmd.ExecuteNonQuery ( );
oCmd.Dispose ( );
foreach …Run Code Online (Sandbox Code Playgroud) 我正在开发一个spring-hibernate-envers应用程序.很多谷歌搜索后的东西终于为我工作,但我仍然有几个问题.
早些时候我saveOrUpdate用于保存或更新实体.但是当与envers合作时,它会抛出nonUniqueObject
异常.所以我使用了merge而且它有效.为此使用合并是否正确?是否merge将新对象插入db?
我试过以下代码:
Run Code Online (Sandbox Code Playgroud)entity=merge(entity); saveOrUpdate(entity);
这也有效.这是正确的方法吗?而且我很好奇为什么saveOrUpdate现在不抛出任何错误.